IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue中methods,computed,watch及 比较 -> 正文阅读

[JavaScript知识库]vue中methods,computed,watch及 比较

1.computed

computed:计算属性
要用得属性不存在,要通过已有得属性计算来(不存在data里面)
eg:

            data() {
                return {
                    isHot: true,
                }
            },
            computed: {
                info() {
                    return this.isHot ? '炎热' : '寒冷'
                },
            },

2.methods和computed相比

和methods相比,两者都可以实现相同的功能,但是计算属性可以进行缓存,如果多次使用,计算属性只会调用一次,效率更高。

3.watch

watch:监视属性
监视属性的变化,发生变化则进行相关操作。

1.监视的属性必须存在,可以是data里面,也可以是计算属性
2.监视属性总的有两种写法,
①一个是写vue对象里面;watch:{ }
②一个则是通过 vm.$watch(’ 属性名’, {watch里面的函数eg:handler等 } )
3.watch里面有
①函数 handler(newValue,oldValue){ }; 【新的值,旧的值】
②immediate ,默认是false, 设置true,表示初始化时让handler调用一次
③deep:true ,开启深度监视;
eg1:

            watch: {
                isHot: {
                    handler(newValue, oldValue) {
                        console.log('isHot', newValue, oldValue);
                    }
                },
            }

eg2:
简写:【当涉及到只有handler函数的时候】

            watch: {
                isHot(newValue, oldValue) {
                    console.log('isHot', newValue, oldValue);
                }
            },

4.computed和watch相比

1.watch不会进行缓存
2.computed能完成的。watch都能完成,而watch能完成的,computed不一定能完成,watch能写一些需要异步操作的,eg:定时器,网络请求【因为computed是通过return来返回值】
3.computed是 多个数据影响一个(多对一);watch则是一对多,一个数据发生变化,引发相应的操作,从而影响多个数据
eg3:
进行异步操作

            watch: {
                firstName(n, o) {
                    this.fullName = n + '-' + this.lastName
                },
                lastName(n, o) {
                    this.fullName = n + '-' + this.firstName
                },
                fullName(n, o) {
                    setTimeout(() => {
                        console.log(this, 'this指向是vm');
                        this.fullName = n
                    }, 1000)
                }
            }
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:19:49  更:2022-11-05 00:23:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 19:51:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码