vue.js学习笔记

1、

http://vuejs.org/2015/10/28/why-no-template-url/

Why Vue.js doesn't support templateURL

2、报错 Cannot read property 'parentNode' of null

把  track-by="$index" 删除就行了,但是如果删除这个了,原来的获取data的dom操作就实现了

3、通过props传值,如果子组件改变值了如果把一个值改成1,父组件再传值为0,子组件的值不变依然是1,需要双向绑定.

prop 默认是单向绑定:当父组件的属性变化时,将传导给子组件,但是反过来不会。这是为了防止子组件无意修改了父组件的状态——这会让应用的数据流难以理解。不过,也可以使用 .sync 或 .once 绑定修饰符显式地强制双向或单次绑定.:show-economy-ota.sync="showEconomyOta"

4、受 ES5 的限制,Vue.js 不能检测到对象属性的添加或删除。因为 Vue.js 在初始化实例时将属性转为 getter/setter,所以属性必须在 data 对象上才能让 Vue.js 转换它,才能让它是响应的。定义一个组件,component,只能通过props来传值,但是里面的值可以不用再外面定义,直接进行新增。跟ui相关的需要外面props定义,跟ui无关的,里面直接使用就可以了。

5、如果外围使用kissy等,通过事件触发到vue里面,事件传递的对象,含有this,会造成vue的this和kissy的this混乱。如果简单的话,还是使用方直接法调用

6、更新数据的问题,在这里栽了很久

因为 JavaScript 的限制,Vue.js 不能检测到下面数组变化:

  1. 直接用索引设置元素,如 vm.items[0] = {}
  2. 修改数据的长度,如 vm.items.length = 0

为了解决问题 (1),Vue.js 扩展了观察数组,为它添加了一个 $set() 方法:

// 与 `example1.items[0] = ...` 相同,但是能触发视图更新
example1.items.$set(0, { childMsg: 'Changed!'})

至于问题 (2),只需用一个空数组替换 items

除了 $set(), Vue.js 也为观察数组添加了 $remove() 方法,用于从目标数组中查找并删除元素,在内部它调用 splice() 。因此,不必这样:

var index = this.items.indexOf(item)
if (index !== -1) {
this.items.splice(index, 1)
}

只用这样:

this.items.$remove(item)
 

 

posted on 2015-11-25 10:30  dhj  阅读(432)  评论(0编辑  收藏  举报

导航