美文网首页
重读vue官网

重读vue官网

作者: YellowPoint | 来源:发表于2019-07-11 17:59 被阅读0次
    1. 虽然没有完全遵循 MVVM 模型,但是 Vue 的设计也受到了它的启发。因此在文档中经常会使用 vm (ViewModel 的缩写) 这个变量名表示 Vue 实例。

      1. (哪里没有遵循?)
    2. Vue实例

    3. 这里唯一的例外是使用 Object.freeze(),这会阻止修改现有的属性,也意味着响应系统无法再追踪变化。

      vue实例
    4. 每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。

    5. 生命周期钩子的 this 上下文指向调用它的 Vue 实例。

    6. 不要在选项属性或回调上使用箭头函数,比如 created: () => console.log(this.a) 或 vm.$watch('a', newValue => this.myMethod())。

    7. 模板语法

    8. “Mustache”语法 (双大括号)

    9. 你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容使用插值。

    10. js表达式 <div v-bind:id="'list-' + id"></div>

    11. 模板表达式都被放在沙盒中,只能访问全局变量的一个白名单,如 Math 和 Date 。你不应该在模板表达式中试图访问用户定义的全局变量。

    12. 从 2.6.0 开始,可以用方括号括起来的 JavaScript 表达式作为一个指令的参数:

    <a v-on:[eventName]="doSomething"> ... </a>
    当 eventName 的值为 "focus" 时,v-on:[eventName] 将等价于 v-on:focus。
    <!-- 这会触发一个编译警告 --> 
    <a v-bind:['foo' + bar]="value"> ... </a> 
    变通的办法是使用没有空格或引号的表达式,或用计算属性替代这种复杂表达式。 
    <!-- 在 DOM 中使用模板时这段代码会被转换为 `v-bind:[someattr]` --> 
    <a v-bind:[someAttr]="value"> ... </a>
    
    1. 计算属性和侦听器

    2. 计算属性是基于它们的响应式依赖进行缓存的,相比之下,每当触发重新渲染时,调用方法将总会再次执行函数。

    3. 计算属性默认只有 getter ,不过在需要时你也可以提供一个 setter

    4. 当需要在数据变化时执行异步或开销较大的操作时,侦听器(居然不是监听器)这个方式是最有用的。

    5. Class 与 Style 绑定

    6. 在将 v-bind 用于 class 和 style 时,表达式结果的类型除了字符串之外,还可以是对象或数组。

    7. (我用的最多的还是对象模式)

    8. 条件渲染

    9. 注意,v-show 不支持 <template> 元素,也不支持 v-else。

    10. 当 v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级。

    11. 列表渲染

    12. 你也可以用 v-for 来遍历一个对象的属性。

      1. v-for="(value, name, index) in object"
    13. 如果你想添加新的响应式属性
      vm.userProfile = Object.assign({}, vm.userProfile, { age: 27, favoriteColor: 'Vue Green' })

    14. 可用计算属性或是方法

      1. <li v-for="n in even(numbers)">{{ n }}</li>

    相关文章

      网友评论

          本文标题:重读vue官网

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