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

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

詳解Vue.js 響應接口

瀏覽:33日期:2023-01-09 13:08:01

Vue 可以添加數據動態響應接口。

例如以下實例,我們通過使用 $watch 屬性來實現數據的監聽,$watch 必須添加在 Vue 實例之外才能實現正確的響應。

實例中通過點擊按鈕計數器會加 1。setTimeout 設置 10 秒后計算器的值加上 20 。

<div id = 'app'> <p style = 'font-size:25px;'>計數器: {{ counter }}</p> <button @click = 'counter++' style = 'font-size:25px;'>點我</button></div><script type = 'text/javascript'>var vm = new Vue({ el: ’#app’, data: { counter: 1 }});vm.$watch(’counter’, function(nval, oval) { alert(’計數器值的變化 :’ + oval + ’ 變為 ’ + nval + ’!’);});setTimeout( function(){ vm.counter += 20; },10000);</script>

效果如下:

詳解Vue.js 響應接口

Vue 不允許在已經創建的實例上動態添加新的根級響應式屬性。

Vue 不能檢測到對象屬性的添加或刪除,最好的方式就是在初始化實例前聲明根級響應式屬性,哪怕只是一個空值。

如果我們需要在運行過程中實現屬性的添加或刪除,則可以使用全局 Vue,Vue.set 和 Vue.delete 方法。

Vue.set

Vue.set 方法用于設置對象的屬性,它可以解決 Vue 無法檢測添加屬性的限制,語法格式如下:

Vue.set( target, key, value )

參數說明:

target: 可以是對象或數組 key : 可以是字符串或數字 value: 可以是任何類型

<div id = 'app'> <p style = 'font-size:25px;'>計數器: {{ products.id }}</p> <button @click = 'products.id++' style = 'font-size:25px;'>點我</button></div><script type = 'text/javascript'>var myproduct = {'id':1, name:'book', 'price':'20.00'};var vm = new Vue({ el: ’#app’, data: { products: myproduct }});vm.products.qty = '1';console.log(vm);vm.$watch(’products.id’, function(nval, oval) { alert(’計數器值的變化 :’ + oval + ’ 變為 ’ + nval + ’!’);});</script>

在以上實例中,使用以下代碼在開始時創建了一個變量 myproduct:

var myproduct = {'id':1, name:'book', 'price':'20.00'};

該變量在賦值給了 Vue 實例的 data 對象:

var vm = new Vue({ el: ’#app’, data: { products: myproduct } });

如果我們想給 myproduct 數組添加一個或多個屬性,我們可以在 Vue 實例創建后使用以下代碼:

vm.products.qty = '1';

查看控制臺輸出:

詳解Vue.js 響應接口

如上圖看到的,在產品中添加了數量屬性 qty,但是 get/set 方法只可用于 id,name 和 price 屬性,卻不能在 qty 屬性中使用。

我們不能通過添加 Vue 對象來實現響應。 Vue 主要在開始時創建所有屬性。 如果我們要實現這個功能,可以通過 Vue.set 來實現:

<div id = 'app'><p style = 'font-size:25px;'>計數器: {{ products.id }}</p><button @click = 'products.id++' style = 'font-size:25px;'>點我</button></div><script type = 'text/javascript'>var myproduct = {'id':1, name:'book', 'price':'20.00'};var vm = new Vue({ el: ’#app’, data: { products: myproduct }});Vue.set(myproduct, ’qty’, 1);console.log(vm);vm.$watch(’products.id’, function(nval, oval) { alert(’計數器值的變化 :’ + oval + ’ 變為 ’ + nval + ’!’);});</script>

詳解Vue.js 響應接口

從控制臺輸出的結果可以看出 get/set 方法可用于qty 屬性。

Vue.delete

Vue.delete 用于刪除動態添加的屬性 語法格式:

Vue.delete( target, key )

參數說明:

target: 可以是對象或數組 key : 可以是字符串或數字

<div id = 'app'> <p style = 'font-size:25px;'>計數器: {{ products.id }}</p> <button @click = 'products.id++' style = 'font-size:25px;'>點我</button></div><script type = 'text/javascript'>var myproduct = {'id':1, name:'book', 'price':'20.00'};var vm = new Vue({ el: ’#app’, data: { products: myproduct }});Vue.delete(myproduct, ’price’);console.log(vm);vm.$watch(’products.id’, function(nval, oval) { alert(’計數器值的變化 :’ + oval + ’ 變為 ’ + nval + ’!’);});</script>

以上實例中我們使用 Vue.delete 來刪除 price 屬性。以下是控制臺輸出結果:

詳解Vue.js 響應接口

從上圖輸出結果中,我們可以看到 price 屬性已刪除,只剩下了 id 和 name 屬性,price 屬性的 get/set 方法也已刪除。

以上就是詳解Vue.js 響應接口的詳細內容,更多關于Vue.js 響應接口的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 慈溪麦田广告公司,提供慈溪广告设计。 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 精准猎取科技资讯,高效阅读科技新闻_科技猎 | 上海赞永| 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 德州网站开发定制-小程序开发制作-APP软件开发-「两山开发」 | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 房屋质量检测-厂房抗震鉴定-玻璃幕墙检测-房屋安全鉴定机构 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 厂房出租-厂房规划-食品技术-厂房设计-厂房装修-建筑施工-设备供应-设备求购-龙爪豆食品行业平台 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 螺杆真空泵_耐腐蚀螺杆真空泵_水环真空泵_真空机组_烟台真空泵-烟台斯凯威真空 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 大米加工设备|大米加工机械|碾米成套设备|大米加工成套设备-河南成立粮油机械有限公司 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 洗地机_全自动洗地机_手推式洗地机【上海滢皓环保】 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 牛奶检测仪-乳成分分析仪-北京海谊 | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 |