写在前面
原本是打算写一个VueJS学习笔记专栏,用于记录vue学习过程中的一些感想,但后来想想,如此做实在是太麻烦,并且每篇文章的篇幅也会比较短,所以现在考虑直接在这一篇博文中进行总结。将学习过程中的感谢或者踩得一些坑直接记录在此一篇文章中,尽量做到每个点都短小精悍。该篇博文并非最终稿,内容会随着文章的更新不断丰富。
官方中文文档:
- Guide:https://cn.vuejs.org/v2/guide/
- API:https://cn.vuejs.org/v2/api/
- Style Guide:https://cn.vuejs.org/v2/style-guide/
- Examples:https://cn.vuejs.org/v2/examples/
下面大部分内容都可以从官方文档中找到。这篇总结,仅将我个人认为有必要记录的进行汇总,以方便后续查找和回顾。
正文
- 在选项属性或者回调方法使用箭头函数会导致在方法内使用
this
获取不到vue实例
1 | created: () => console.log(this.a) |
- 事件总线机制下,监听总线事件的回调方法要使用箭头函数,否则this指代总线实例。
1 | mounted(){ // 挂载后执行 |
v-bind
、v-on
、v-slot
指令使用动态指令参数(2.6.0+)
1 | <a :[attr]="value">...</a> |
attr
、event
和solt
会作为一个javascript表达式进行求值
在DOM中使用模板时,避免使用大写字符来命名键名,因为浏览器会把attribute名全部强制转换为小写。
数据一般是从父组件流向子组件的,prop的值会因父组件中数据的改变而改变。
不要修改prop的值,如果一定要这么做,请使用计算属性或者data。
计算属性默认只有getter,但是我们也可以提供一个setter。
1 | computed: { |
父组件中的data可以是一个对象也可以是一个方法,但是子组件的data属性必须是一个方法。
由于JavaScript的限制,Vue不能检测数组和对象的变化。也就是说对对象的属性或数组进行修改添加删除不会反应到视图中(但值的却改变了),可以使用
vm.$set
实例方法(全局方法的别名),或Vue.set
全局方法。
1 | var vm = new Vue({ |
v-if
和v-show
的异同:
v-if
指令是直接销毁和重建DOM达到让元素显示和隐藏的效果v-show
指令通过修改元素的display属性让其显示或者隐藏
1 | <div id="app"> |