电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Vue中computed和watch有哪些區別

瀏覽:88日期:2022-10-18 15:36:47
計算屬性computed: 支持緩存,只有依賴數據發生改變,才會重新進行計算 不支持異步,當computed內有異步操作時無效,無法監聽數據的變化 computed 屬性值會默認走緩存,計算屬性是基于它們的響應式依賴進行緩存的,也就是基于data中聲明過或者父組件傳遞的props中的數據通過計算得到的值 如果一個屬性是由其他屬性計算而來的,這個屬性依賴其他屬性,是一個多對一或者一對一,一般用computed 如果computed屬性屬性值是函數,那么默認會走get方法;函數的返回值就是屬性的屬性值;在computed中的,屬性都有一個get和一個set方法,當數據變化時,調用set方法。

var vm = new Vue({ el: ’#app’, data: { message: ’hello’ }, template: ` <div> <p>我是原始值: '{{ message }}'</p> <p>我是計算屬性的值: '{{ computedMessage}}'</p> // computed 在 DOM 里直接使用不需要調用 </div> `, computed: { // 計算屬性的 getter computedMessage: function () { // `this` 指向 vm 實例 return this.message.split(’’).reverse().join(’’) } }})

結果:

我是原始值: 'Hello'我是計算屬性的值: 'olleH'

如果不使用計算屬性,那么 message.split(’’).reverse().join(’’) 就會直接寫到 template 里,那么在模版中放入太多聲明式的邏輯會讓模板本身過重,尤其當在頁面中使用大量復雜的邏輯表達式處理數據時,會對頁面的可維護性造成很大的影響

而且計算屬性如果依賴不變的話,它就會變成緩存,computed 的值就不會重新計算

所以,如果數據要通過復雜邏輯來得出結果,那么就推薦使用計算屬性

偵聽屬性watch 不支持緩存,數據變,直接會觸發相應的操作。 watch支持異步;監聽的函數接收兩個參數,第一個參數是最新的值;第二個參數是輸入之前的值; 當一個屬性發生變化時,需要執行對應的操作;一對多; 監聽數據必須是data中聲明過或者父組件傳遞過來的props中的數據,當數據變化時,觸發其他操作,函數有兩個參數:

new Vue({ data: { n: 0, obj: { a: 'a' } }, template: ` <div> <button @click='n += 1'>n+1</button> <button @click='obj.a += ’hi’'>obj.a + ’hi’</button> <button @click='obj = {a:’a’}'>obj = 新對象</button> </div> `, watch: { n() { console.log('n 變了'); }, obj:{ handler: function (val, oldVal) { console.log('obj 變了') }, deep: true // 該屬性設定在任何被偵聽的對象的 property 改變時都要執行 handler 的回調,不論其被嵌套多深 }, 'obj.a':{ handler: function (val, oldVal) { console.log('obj.a 變了') }, immediate: true // 該屬性設定該回調將會在偵聽開始之后被立即調用 } }}).$mount('#app');

不應該使用箭頭函數來定義 watcher 函數,因為箭頭函數沒有 this,它的 this 會繼承它的父級函數,但是它的父級函數是 window,導致箭頭函數的 this 指向 window,而不是 Vue 實例

deep 控制是否要看這個對象里面的屬性變化 immediate 控制是否在第一次渲染是執行這個函數

vm.$watch() 的用法和 watch 回調類似

vm.$watch(’data屬性名’, fn, {deep: .., immediate: ..})

vm.$watch('n', function(val, newVal){ console.log('n 變了');},{deep: true, immediate: true})總結 如果一個數據需要經過復雜計算就用 computed 如果一個數據需要被監聽并且對數據做一些操作就用 watch

以上就是Vue中computed和watch有哪些區別的詳細內容,更多關于Vue中computed和watch的區別的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 电动百叶窗,开窗器,电动遮阳百叶,电动开窗机生产厂家-徐州鑫友工控科技发展有限公司 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 深圳市索富通实业有限公司-可燃气体报警器 | 可燃气体探测器 | 气体检测仪 | 聚合氯化铝价格_聚合氯化铝厂家_pac絮凝剂-唐达净水官网 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 模具硅橡胶,人体硅胶,移印硅胶浆厂家-宏图硅胶科技 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 慈溪麦田广告公司,提供慈溪广告设计。 | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 汽液过滤网厂家_安平县银锐丝网有限公司 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 纸塑分离机-纸塑分离清洗机设备-压力筛-碎浆机厂家金双联环保 | 小型气象站_车载气象站_便携气象站-山东风途物联网 | 下水道疏通_管道疏通_马桶疏通_附近疏通电话- 立刻通 | ?水马注水围挡_塑料注水围挡_防撞桶-常州瑞轩水马注水围挡有限公司 | 上海质量认证办理中心| 智能终端_RTU_dcm_北斗星空自动化科技| 双舌接地线-PC68数字式高阻计-ZC36|苏海百科 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 元拓建材集团官方网站| 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 破碎机锤头_耐磨锤头_合金锤头-鼎成机械一站式耐磨铸件定制服务 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 温州富欧金属封头-不锈钢封头厂家| 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 |