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

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

Vue中的nextTick作用和幾個簡單的使用場景

瀏覽:2日期:2022-10-08 18:54:13
目的

理解下 nextTick 的作用和幾個簡單的使用場景

正文起什么作用?

在下次 DOM 更新循環結束之后執行延遲回調。在修改數據之后立即使用這個方法,獲取更新后的 DOM。

我想各位都知道或了解 Vue 的渲染流程,Vue 在監聽到數據變化后會重新渲染,配合 VDOM 更新真實的 DOM,而 nextTick 的觸發時機就是在調用方法后的第一次重新渲染完畢后。

Vue中的nextTick作用和幾個簡單的使用場景

如何使用?

有兩種使用方法,一種是傳入回調,另一種是 Promise,官方使用示例如下:

// 修改數據vm.msg = ’Hello’// DOM 還沒有更新Vue.nextTick(function () { // DOM 更新了})// 作為一個 Promise 使用 (2.1.0 起新增,詳見接下來的提示)Vue.nextTick() .then(function () { // DOM 更新了 })

如果在 SPA(單文件組件) 中,可能是這個樣子

<template> <div id='test'>{{msg}}</div></template><script>export default { name: ’app’, data() { return { 'msg': 'Hello World!' } }, method() { this.msg = 'Hi World!'; this.$nextTick(() => { console.log(’DOM updated:’, document.getElementById(’test’).innerHTML) }); }}</script>有什么使用場景?

需要等待渲染完成后執行的一些方法

初始化綁定或操作 DOM

比如在 created 和 mounted 回調中,需要操作渲染好的 DOM,則需要在 nextTick 中執行相關邏輯,這在必須使用一些老的需要綁定 DOM 的庫時很有用。

比如,在加載 UEditor 時,可能會這樣玩

<template><script name='content' type='text/plain'> 這里寫你的初始化內容 </script></template><script>export default { mounted() { this.nextTick(() => { var ue = UE.getEditor(’container’); }); }}獲取元素寬度

在 Vue 中獲取元素寬度有兩種方式,第一種是通過 $refs[ref名稱].style.width,第二種可以使用傳統操作 DOM 的方式獲取,但這兩者要獲取到準確的元素寬度,則需要在 DOM 渲染完畢后執行。

<template><p ref='myWidth' v-if='showMe'>{{ message }}</p> <button @click='getMyWidth'>獲取p元素寬度</button></template><script>export default { data() { return { message: 'Hello world!', showMe: false, }, methods: { getMyWidth() { this.showMe = true; //this.message = this.refs.myWidth.offsetWidth; //報錯 TypeError: this.refs.myWidth is undefined this.nextTick(()=>{ //dom元素更新后執行,此時能拿到p元素的屬性 this.message = this.refs.myWidth.offsetWidth; }) } } }}</script>總結

雖說 Vue 的設計理念并不建議我們去直接操作 DOM,但有些場景下出現了特別令人迷惑的問題,理解 Vue 的渲染邏輯后,使用 nextTick() 可以解決。

以上就是如何使用Vue中的nextTick的詳細內容,更多關于使用vue中的nextTick的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 蓄电池在线监测系统|SF6在线监控泄露报警系统-武汉中电通电力设备有限公司 | 北京律师咨询_知名专业北京律师事务所_免费法律咨询 | 服务器之家 - 专注于服务器技术及软件下载分享 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 缝纫客| 书信之家_书信标准模板范文大全 最新范文网_实用的精品范文美文网 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 深圳办公室装修-写字楼装修设计-深圳标榜装饰公司 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 退火炉,燃气退火炉,燃气热处理炉生产厂家-丹阳市丰泰工业炉有限公司 | 高低温老化试验机-步入式/低温恒温恒湿试验机-百科 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 照相馆预约系统,微信公众号摄影门店系统,影楼管理软件-盟百网络 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 尚为传动-专业高精密蜗轮蜗杆,双导程蜗轮蜗杆,蜗轮蜗杆减速机,蜗杆减速机生产厂家 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 杭州中策电线|中策电缆|中策电线|杭州中策电缆|杭州中策电缆永通集团有限公司 | 南京和瑞包装有限公司| 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 聚合氯化铝价格_聚合氯化铝厂家_pac絮凝剂-唐达净水官网 | 网站建设-临朐爱采购-抖音运营-山东兆通网络科技 | 冷却塔厂家_冷却塔维修_冷却塔改造_凉水塔配件填料公司- 广东康明节能空调有限公司 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 培训无忧网-教育培训咨询招生第三方平台 |