Vue.js 知识点
来源:互联网 发布:linux网速测试命令 编辑:程序博客网 时间:2024/06/07 23:36
计算属性computed
计算属性computed,其实是该属性的getter函数,计算属性只有在它的相关依赖改变的时候才会重新计算,否则就会缓存起来,避免了重复使用的时候函数执行,优化性能。
同样,计算属性也有setter函数,我们可以在计算属性重新赋值的时候通过setter函数执行一些语句。
与watcher比较:watcher通过对所有 的依赖都需要写watcher函数,进行监听,如果某一个依赖发生改变,再进行改变,而且,每次都会执行函数,不利于我们的性能。而computed则不同,它会将计算结果进行缓存,每次调用都会调用这个缓存的结果,而不必执行函数,只有在相关依赖改变的情况下,才会执行函数,而且它可以对多个依赖起作用,这点要优于watcher函数。
new Vue({ el:'#app', data:{ firstName:'John', lastName:'Wade', fullName:'John Wade' }, watch:{ //watcher函数 firstName:(n) => { this.fullName = n + ' ' + this.lastName }, lastName:(n) => { this.fullName = this.firstName + ' ' + n } }, computed:{ //计算属性computed fullName:() => { return this.firstName + ' ' + this.lastName } }})//是否computed优于watcher函数呢?
template包装元素
Vue中可以使用template包装元素来将一些分离的元素包在一起,在最终渲染元素时,并不会包括template元素,这样可以避免没有根节点的问题!
PS:v-if v-for都可以使用template元素,v-show不支持template元素。
<template v-if="isNessery"> <h1>Hello</h1> <h2>Welcome to China!</h2> </template>
使用Key值来管理可复用的元素
通常情况下,Vue为尽可能高效的渲染元素,会使用已有的重复元素。这样会出现一个问题,如果两个input的使用,已经在其中一个里面输入一些内容,那么当需要显示第二个时,通常会重复使用第一个,这样输入的内容不会被清除,这样就不符合需求,这种情况下,我们在相同的元素上加上不同的key值,就不会出现这个问题了,基本上这个问题大部分会出现在input上,其他不需要输入的元素应该没有问题。
另外:v-if,v-else-if,v-else这些条件必须紧跟在一起,否则不起作用!
v-show不支持template元素
v-if与v-show:v-if有更高的切换开销,v-show有更高的渲染开销,一般情况下,如果元素需要频繁的切换,使用v-show比较好,如果运行时条件不太可能改变,那么就使用v-if!
<template v-if="isActive"> <label>Template 1</label> <input type="text" key="temp-1"/> </template> <template v-else> <label>Template 2</label> <input type="text" key="temp-2"/> </template> //其中input添加了唯一的key值,每次都会被重新加载 //而label元素会被高效的重复使用,只改变里面的内容,不需要key值
变异数组
Vue.js包含一些数组变异方法,也会触发视图更新:
push()pop()shift()unshift()splice()sort()reverse()
变异方法意思就是会改变原数组的方法,也有非变异方法,它们是返回一个全新的数组。如:filter(),concat(),slice()等。
Vue实现了一些方式最大的重复使用已有DOM元素。
事件修饰符
.stop //阻止事件冒泡.prevent //阻止重载页面.capture //捕获.self //元素本身.once //只执行一次//键名修饰符@keyup.enter.tab.delete.space.esc...
表单控件绑定
可以将checkbox绑定到一个数组上
<input type="checkbox" value="a" v-model="arrs"/><input type="checkbox" value="b" v-model="arrs"/><input type="checkbox" value="c" v-model="arrs"/>
- Vue.js 知识点罗列
- Vue.js 知识点
- Vue.js 知识点2
- Vue.js新手入门知识点
- vue知识点
- vue 知识点
- Vue Router知识点
- 关于vue的知识点
- Vue常用知识点
- vue初级知识点总结
- vue的知识点
- vue 零碎知识点
- vue.js
- vue.js
- vue.js
- Vue.js
- vue.js
- Vue.js
- hive size计算数组长度的一个坑
- 汇编语言程序设计读书笔记(4)- 程序设计基础之一
- STM32 flash 读写操作
- javascript实现ie6兼容position:fixed
- Java代码执行流程
- Vue.js 知识点
- 定位点击源
- 更改MFC对话框默认的窗口类名
- ios-nonatomic和atomic
- Kill Bug 2017.8.9--android考试系统 翻页崩溃 java.lang.ClassNotFoundException
- 2017多校五 1008题 hdu 6092 Rikka with Subset 背包
- 编写Linux Shell脚本的最佳实践
- 面向对象基础
- 编程语言与《权力的游戏》之间不可言说的秘密