Vue.js之计算属性(computed)、属性监听(watch)与方法选项(methods)
2024-09-05 08:06:06
vue.js官网:https://cn.vuejs.org/v2/guide/components-registration.html
一、计算属性-computed
1. 作用:能够避免数据冗余,通过计算,可以在已有的data数据中生成新的变量,计算属性的变量将会被缓存
触发时机:当依赖的响应式属性变化才会重新计算
示例:
html:
<!-- 输出:Li XuanJing -->
<div id="app">{{fullName}}</div> script:
var vm = new Vue({
el:'#app',
data:{
fristName:'Li'
lastName:'XuanJing'
},
computed:{
// 仅读取
fullName () {
return this.fristName + ' ' + lastNmae
},
setName :{
//读取和设置(getter、setter)
get () {
return this.fristNmae + ' ' lastName
}
set (v) {
this.lastName = v + lastName
}
}
}
})
// 修改 setName 属性
vm.setName = 'lx' // => 输出: lastName = lxXuanJing
二、属性监听-watch
1. 作用:监听属性的变化
2. 触发时机:当属性发生变化时触发(可以配合v-model等指令使用)
示例(vue.js官方实例):
var vm = new Vue({
data: {
a: 1,
b: 2,
c: 3,
d: 4,
e: {
f: {
g: 5
}
}
},
methods:{
someMethod () { /* ...... */}
}
watch: {
a: function (val, oldVal) {
console.log('new: %s, old: %s', val, oldVal)
},
// 绑定一个方法
b: 'someMethod',
// deep=true 深度 watcher(检测每一个伪属性的变化)
c: {
handler: function (val, oldVal) { /* ... */ },
deep: true
},
// 设置immediate属性后,该回调将会在侦听开始之后被立即调用
d: {
handler: function (val, oldVal) { /* ... */ },
immediate: true
},
e: [
function handle1 (val, oldVal) { /* ... */ },
function handle2 (val, oldVal) { /* ... */ }
],
// watch vm.e.f's value: {g: 5}:监听e.f属性的变化
'e.f': function (val, oldVal) { /* ... */ }
}
})
vm.a = 2 // => new: 2, old: 1
三、方法选项-methods
作用:Vue实例中,函数需要定义在 methods 对象选项中
触发时机:当methods中的方法被主动调用的时候触发
实例(官方实例):
var vm = new Vue({
data: { a: 1 },
methods: {
plus: function () {
this.a++
}
}
})
vm.plus()
vm.a // 2
最新文章
- 时间的处理 --java
- MVC5-5 Razor引擎及视图结构
- Django 源码小剖: 更高效的 URL 调度器(URL dispatcher)
- Android 解析XML
- (转)兼容主流浏览器的CSS透明代码
- Android 6.0权限问题
- 安卓能用的modebus CRC16计算,附上对应的C语言的CRC16(转)
- java对象拷贝和复制
- 线上平滑升级nginx1.12
- 英语口语练习系列-C25-冒险-课堂用语-葬我
- Numpy学习笔记(一)
- Django学习篇(web框架的由来)
- Java反射《四》获取方法
- ps 和 top 的cpu的区别
- 在Docker Swarm上部署Apache Storm:第2部分
- C语言应用操作之文件
- 如何查看Isilon节点的硬件信息?
- SQL中去掉字符串中最后一个字符(小技巧)
- Openflow Plugin学习笔记3
- 如何禁止审查元素扒代码(F12)
热门文章
- RXD and math
- Beautiful Walls
- .NET+Sqlite如何支持加密
- Proximal Algorithms 2 Properties
- v75.01 鸿蒙内核源码分析(远程登录篇) | 内核如何接待远方的客人 | 百篇博客分析OpenHarmony源码
- 对vector和map容器的删除元素操作
- Zookeeper基础教程(五):C#实现Zookeeper分布式锁
- 初识python: 生成器并行(做包子,吃包子)
- centos7 安装locate
- JSch Algorithm negotiation fail