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 不能检测到下面数组变化:
- 直接用索引设置元素,如
vm.items[0] = {}
; - 修改数据的长度,如
vm.items.length = 0
。
为了解决问题 (1),Vue.js 扩展了观察数组,为它添加了一个 $set()
方法:
// 与 `example1.items[0] = ...` 相同,但是能触发视图更新
|
至于问题 (2),只需用一个空数组替换 items
。
除了 $set()
, Vue.js 也为观察数组添加了 $remove()
方法,用于从目标数组中查找并删除元素,在内部它调用 splice()
。因此,不必这样:
var index = this.items.indexOf(item)
|
只用这样:
this.items.$remove(item)
|