这是vue复习的一些碎碎念。主要是看官网笔记来进行复习。
一、vue基础部分
1.声明式渲染
官网中介绍:Vue.js的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进DOM的系统。 我的理解是只要写一个指令将数据写在一个组件中,vue可以自动将这个指令渲染进DOM。
2.条件与循环
v-if :根据表达式的真假来判断这个元素是否插入或者删除。
v-for绑定数组的数据来渲染一个项目列表,遍历的时候可以设置一个key值。
注:一般不推荐v-if和v-for一起使用,当v-if与v-for一起使用时,v-for具有比v-if更高的优先级。这意味着v-if将分别重复运行于每个v-for循环中。当你只想为部分项渲染节点时,这种优先级的机制会十分有用,比如:
3处理用户输入
v-on添加一个事件监听器,通过它可以调用vue实例中定义的方法。
v-model实现表单输入和应用状态之间的双向绑定。
4组件化应用
可以将一个大型的项目进行拆分成多个组件,比如一个页面可以拆分为header,footer等多个组件。
5创建一个Vue实例
创建Vue实例的语句 var vm = new Vue({ el: data:{},//要绑定的数据 created:function(){}, methods:}) 一个Vue实例被创建时,会将data对象中所有的property加入到Vue的响应式系统中。当property的值发生改变时,视图将产生响应,即匹配更新为新的值。
6Vue生命周期(重要)
Vue的生命周期钩子图如下所示: 在图中还有三个钩子未显示:nextTick,路由组件专用的activated(激活)和deactivated(失活)。
6.1初始化显示
beforeCreate()、created()、beforeMount()、mounted()。
6.2更新状态 this.xxx =value
beforeUpdated()、updated()
6.3销毁Vue实例:vm.$destroy()
beforeDestroy()、destroyed()
常用的生命周期方法:
mounted()发送ajax请求、启动定时器等异步任务可以放在这个钩子里面。
beforeDestroy()做收尾工作,比如清除定时器。
7模板语法
vue.js使用了基于HTML的模板语法,允许开发者生命式的将DOM绑定至底层Vue实例的数据。 在底层实现上,Vue将模板编译成虚拟DOM渲染函数,结合响应系统,Vue能够智能地计算出最少需要重新渲染多少组件,并把DOM操作次数减到最少【这里感觉是用Diff算法】。
7.1对模板的理解
HTML中包含了一些JS语法代码,语法分为两种,分别为插值语法,指令(以V-开头)。 (1)插值语法 功能:用于解析标签体内容 语法:{{xxx}},xxx会作为js表达式解析 (2)指令语法 功能:解析标签属性、解析标签体内容、绑定事件 EG:v-bind:href='xxx',xxx会作为js表达式被解析 v-bind缩写为“:”,v-on缩写为“@”
8计算属性和侦听器
计算属性(出现在new vue里面,computed:{}):具有缓存功能,vue中data里面的数据是属性,拿着data中数据计算出的结果称为计算属性,计算属性的简写形式只有get,只对数据进行读取操作。 普通的函数方法可以实现一些复杂的计算,但是没有缓存功能。 监听属性:需要在数据变化时执行异步或开销较大的操作时,该方法最有效。
9v-if和v-show的区别
v-if 在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建,会对DOM进行添加或删除操作。 v-show只是在CSS层面进行隐藏或者显示,页面的机构还在。 一般来说,v-if有更高的切换开销,而v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用v-show较好;如果在运行时条件很少改变,则使用 v-if 较好。
10列表渲染
v-for指令需要使用item in items形式的特殊语法,其中items是源数据数组,而item则是被迭代的数组元素的别名。
v-for还支持一个可选的第二个参数,即当前项的索引。
也可以用of替代in作为分隔符。
v-for渲染的时候可以再添加一个唯一的key,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,这样在一定程度上个人认为是可以提高渲染效率的。
注意:不要使用对象或数组之类的非基本类型值作为v-for的key。请用字符串或数值类型的值。
11事件监听
v-on监听DOM事件,并在触发是运行一些js代码,v-on后面绑定的事件在methods对象中进行定义。
12双向数据绑定
v-model可以用在表单、及元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。