vue.js的一些知识点
2017-01-04 10:54
344 查看
1、
上述的data有三种写法,都能够运行,那有什么区别呢?
首先,1是3的语法糖,是新的ES6语法,和3一摸一样。
1和2的区别:引用官网,简而言之,在
使用组件时,大多数可以传入到 Vue 构造器中的选项可以在注册组件时使用,有一个例外:
下面的例子会让所有的组件都同时发生变化
由于这三个组件共享了同一个
https://cn.vuejs.org/v2/guide/components.html#data-必须是函数
https://segmentfault.com/q/1010000007910818?_ea=1490198
2、
渐进式框架、采用自底向上增量开发(可以查看前面的文章)
核心思想:响应的数据绑定和组合的视图组件
在没有接触 DOM 的情况下更新了应用的状态 - 所有的 DOM 操作都由 Vue 来处理,你写的代码只需要关注基本逻辑。v-on可以实现。
注意每个 Vue 实例都会代理其
3、
不仅可以绑定 DOM 文本到数据,也可以绑定 DOM 结构到数据(v-if)。
需要注意的是:v-if不能绑定在所挂载的元素上,比如:
这样会报错:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="vue.js"></script> </head> <body> <div id="app"> <span>{{count}}</span> <button @click="inc">+</button> </div> <script> var app = new Vue({ // 1. // data () { // return {count: 0} // }, // 2. // data: { // count: 0 // }, // 3. data: function() { return { count: 0 } }, methods: { inc () {this.count++} } }) app.$mount('#app') </script> </body> </html>
上述的data有三种写法,都能够运行,那有什么区别呢?
首先,1是3的语法糖,是新的ES6语法,和3一摸一样。
1和2的区别:引用官网,简而言之,在
app = new Vue对象时,没什么区别,因为你
app对象不会被复用。但是在组件中,因为可能在多处调用同一组件,所以为了不让多处的组件共享同一
data对象,只能返回函数。
使用组件时,大多数可以传入到 Vue 构造器中的选项可以在注册组件时使用,有一个例外:
data必须是函数。 实际上,如果你使用的不是函数,那么 Vue 会在控制台发出警告,告诉你在组件中
data必须是一个函数。
下面的例子会让所有的组件都同时发生变化
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="vue.js"></script> </head> <body> <div id="example-2"> <simple-counter></simple-counter> <simple-counter></simple-counter> <simple-counter></simple-counter> </div> <script> var data = { counter: 0 } Vue.component('simple-counter', { template: '<button v-on:click="counter += 1">{{ counter }}</button>', // data 是一个函数,因此 Vue 不会警告, // 但是我们为每一个组件返回了同一个对象引用 data: function () { return data } }) new Vue({ el: '#example-2' }) </script> </body> </html>
由于这三个组件共享了同一个
data, 因此增加一个 counter 会影响所有组件!我们可以通过为每个组件返回新的 data 对象来解决这个问题:
data: function () { return { counter: 0 } }
https://cn.vuejs.org/v2/guide/components.html#data-必须是函数
https://segmentfault.com/q/1010000007910818?_ea=1490198
2、
渐进式框架、采用自底向上增量开发(可以查看前面的文章)
核心思想:响应的数据绑定和组合的视图组件
在没有接触 DOM 的情况下更新了应用的状态 - 所有的 DOM 操作都由 Vue 来处理,你写的代码只需要关注基本逻辑。v-on可以实现。
注意每个 Vue 实例都会代理其
data对象里所有的属性,只有这些被代理的属性是响应的。如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。
3、
不仅可以绑定 DOM 文本到数据,也可以绑定 DOM 结构到数据(v-if)。
需要注意的是:v-if不能绑定在所挂载的元素上,比如:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue组件</title> </head> <body> <div id="app" title="text" v-if="type"> {{message}} {{text}} </div> <script src="http://cdn.jsdelivr.net/vue/1.0.16/vue.js"></script> <script> var mes = { message:"hello"+ new Date(), text:"world" } var app = new Vue({ el:"#app", data:mes, type:true }) </script> </body> </html>
这样会报错:
相关文章推荐
- Vue.js在使用中的一些注意知识点
- Vue.js在使用中的一些注意知识点
- JS中的一些不常用的知识点。
- js便签笔记(9)——解读jquery源码时记录的一些知识点
- JS你可能还不知道的一些知识点(一)
- js一些基础知识点
- 最近的一些JS知识点
- Django+Vue.js 初学入手的一些坑,已填坑
- 关于Vue.js一些问题和思考学习笔记(1)
- JS的一些知识点小结
- 关于Vue.js的一些总结(2)
- Js小知识及一些常见易混淆的知识点
- JS初学的一些易错的知识点
- ASP.Net一些知识点(关于.net与JS如何交互)
- 关于Vue.js一些问题和思考学习笔记(2)
- 关于js的一些关键知识点(call,apply,callee, caller,clourse,prototypeChain)
- Vue.js 的一些资源索引
- 使用vue.js开发时一些注意事项
- 初步JS的一些小知识点