Vue開(kāi)發(fā)常用方法詳解
$nextTick()
this.$nextTick()將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行。在修改數(shù)據(jù)之后立即使用它,然后等待 DOM 更新。
使用場(chǎng)景
在一些情況下,變量進(jìn)行了初始賦值或更新,但是DOM還未更新完成時(shí),使用變量的值是不起作用的。此時(shí)就需要通過(guò)this.$nextTick()等待DOM更新加載完成后立即進(jìn)行使用。常用于created鉤子函數(shù)中以及涉及到DOM更新的情況。
用法
this.$nextTick(() => { this.$refs.table.refresh(true)})
this.$nextTick()在頁(yè)面交互,尤其是從后臺(tái)獲取數(shù)據(jù)后重新生成dom對(duì)象之后的操作有很大的優(yōu)勢(shì)
$forceUpdate()
迫使 Vue 實(shí)例重新渲染。注意它僅僅影響實(shí)例本身和插入插槽內(nèi)容的子組件,而不是所有子組件。
使用場(chǎng)景
對(duì)于一個(gè)復(fù)雜的對(duì)象,例如一個(gè)對(duì)象數(shù)組,直接去給數(shù)組上某一個(gè)元素增加屬性,或者直接把數(shù)組的length變成0,vue無(wú)法知道發(fā)生了改變時(shí)可以使用強(qiáng)制更新
另一方面,表單渲染時(shí),有時(shí)進(jìn)行了選擇操作,但是表單內(nèi)容未更新,可使用強(qiáng)制更新
用法
this.$nextTick(() => { this.$refs.table.refresh(true) })
$set()
使用場(chǎng)景
受 ES5 的限制,Vue.js 不能檢測(cè)到對(duì)象屬性的添加或刪除
向響應(yīng)式對(duì)象中添加一個(gè) property,并確保這個(gè)新 property 同樣是響應(yīng)式的,且觸發(fā)視圖更新。它必須用于向響應(yīng)式對(duì)象上添加新 property,因?yàn)?Vue 無(wú)法探測(cè)普通的新增 property (比如 this.myObject.newProperty = ‘hi')
注意對(duì)象不能是 Vue 實(shí)例,或者 Vue 實(shí)例的根數(shù)據(jù)對(duì)象。
用法
this.$set( target, propertyName/index, value )
target
:要更改的數(shù)據(jù)源(可以是對(duì)象或者數(shù)組)propertyName/index
:對(duì)象新添加的屬性名或者數(shù)組新添加元素的下標(biāo)位置value
:新添加屬性的值
// 對(duì)象 this.$set(this.student,"age", 24) // 數(shù)組 this.$set(this.arrayList, 2, { name: "張三" })
.sync——2.3.0+ 新增(Vue 3.x中已被v-model替換,不再支持)
使用場(chǎng)景
在有些情況下,我們可能需要對(duì)一個(gè) prop 進(jìn)行“雙向綁定”,在vue 2.3.0之后便可以使用.sync修飾符進(jìn)行操作。Vue 3.0之后不再支持
用法
父組件
<comp :foo.sync="bar"></comp>
實(shí)際會(huì)被等價(jià)擴(kuò)展為
<comp :foo="bar" @update:foo="val => bar = val"></comp>
子組件
this.$emit('update:foo', newValue)
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
詳解vue-Resource(與后端數(shù)據(jù)交互)
本篇文章主要介紹了vue-Resource(與后端數(shù)據(jù)交互),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01vue keep-alive列表頁(yè)緩存 詳情頁(yè)返回上一頁(yè)不刷新,定位到之前位置
這篇文章主要介紹了vue keep-alive列表頁(yè)緩存 詳情頁(yè)返回上一頁(yè)不刷新,定位到之前位置,本文通過(guò)實(shí)例代碼效果圖展示給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-11-11Vue3+elementui plus創(chuàng)建項(xiàng)目的方法
這篇文章主要介紹了Vue3+elementui plus創(chuàng)建項(xiàng)目的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12在vue項(xiàng)目中promise解決回調(diào)地獄和并發(fā)請(qǐng)求的問(wèn)題
這篇文章主要介紹了在vue項(xiàng)目中promise解決回調(diào)地獄和并發(fā)請(qǐng)求的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Vue引入sign-canvas實(shí)現(xiàn)簽名畫(huà)板效果
這篇文章主要介紹了Vue引入sign-canvas實(shí)現(xiàn)簽名畫(huà)板,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03