美文网首页
vue 小常识

vue 小常识

作者: Vicky丶Amor | 来源:发表于2019-04-26 16:20 被阅读0次

    组件的 data 必须是一个函数。

    当在组件中使用 data 属性的时候 (除了 new Vue 外的任何地方),它的值必须是返回一个对象的函数。

    详解

    当 data 的值是一个对象时,它会在这个组件的所有实例之间共享。想象一下,假如一个 TodoList 组件的数据是这样的:

    data: {
      listTitle: '',
      todos: []
    }
    

    我们可能希望重用这个组件,允许用户维护多个列表 (比如分为购物、心愿单、日常事务等)。这时就会产生问题。因为每个组件的实例都引用了相同的数据对象,更改其中一个列表的标题就会改变其它每一个列表的标题。增删改一个待办事项的时候也是如此。
    取而代之的是,我们希望每个组件实例都管理其自己的数据。为了做到这一点,每个实例必须生成一个独立的数据对象。在 JavaScript 中,在一个函数中返回这个对象就可以了:

    data: function () {
      return {
        listTitle: '',
        todos: []
      }
    }
    

    Prop 定义应该尽量详细。

    在你提交的代码中,prop 的定义应该尽量详细,至少需要指定其类型。

    详解

    细致的prop 定义有两个好处:

    • 它们写明了组件的 API,所以很容易看懂组件的用法;
    • 在开发环境下,如果向一个组件提供格式不正确的 prop,Vue 将会告警,以帮助你捕获潜在的错误来源。
    props: {
      status: String
    }
    

    为组件样式设置作用域

    对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的。

    这条规则只和有关。你不一定要使用 scoped 特性。设置作用域也可以通过 CSS Modules,那是一个基于 class 的类似 BEM 的策略,当然你也可以使用其它的库或约定。
    不管怎样,对于组件库,我们应该更倾向于选用基于 class 的策略而不是 scoped 特性。
    这让覆写内部样式更容易:使用了常人可理解的 class 名称且没有太高的选择器优先级,而且不太会导致冲突。

    相关文章

      网友评论

          本文标题:vue 小常识

          本文链接:https://www.haomeiwen.com/subject/bqfqnqtx.html