解決vue數(shù)據(jù)不實(shí)時(shí)更新的問(wèn)題(數(shù)據(jù)更改了,但數(shù)據(jù)不實(shí)時(shí)更新)
一、在我們使用vue進(jìn)行開(kāi)發(fā)的過(guò)程中,可能會(huì)遇到一種情況:
當(dāng)生成vue實(shí)例后,當(dāng)再次給數(shù)據(jù)賦值時(shí),有時(shí)候并不會(huì)自動(dòng)更新到視圖上去;
向響應(yīng)式對(duì)象中添加一個(gè)屬性,并確保這個(gè)新屬性同樣是響應(yīng)式的,且觸發(fā)視圖更新。它必須用于向響應(yīng)式對(duì)象上添加新屬性,因?yàn)?Vue 無(wú)法探測(cè)普通的新增屬性 ,需要用vue內(nèi)置的方法
二、Vue.set() 響應(yīng)式新增與修改數(shù)據(jù)
此時(shí)我們需要知道Vue.set()需要哪些參數(shù),官方API:https://cn.vuejs.org/v2/api/#Vue-set
調(diào)用方法:Vue.set( target, key, value ) 或者 this.$set(target, key, value);
target:要更改的數(shù)據(jù)源(可以是對(duì)象或者數(shù)組)
key:要更改的具體數(shù)據(jù)
value :重新賦的值,
調(diào)用:this.$set(target, key, value);
補(bǔ)充知識(shí):vue Render scopedSlots
render 中 slot 的一般默認(rèn)使用方式如下: this.$slots.default 對(duì)用 template的<slot>的使用沒(méi)有name 。 想使用多個(gè)slot 的話。需要對(duì)slot命名唯一。
在render函數(shù)中動(dòng)態(tài)使用多個(gè)slot,并且給slot傳值
一、我的業(yè)務(wù)邏輯:
使用了三個(gè)組件,
組件A調(diào)用組件B,組件B調(diào)用組件C,組件C是自己封裝的render渲染組件。
組件A希望將自己自定義的插槽插到C組件,C組件渲染出自定義的內(nèi)容,并且將C組件的值傳遞給B組件和A組件,B組件是對(duì)C組件進(jìn)行更大一層的封裝
A組件調(diào)用B組件
<index-grid>
<div
slot="name"
slot-scope="field"
class="check-link"
@click="rowLinkClick"
>
<span>{{ field.field.rowData.name }}</span>
</div>
</index-grid>
A組件引用B組件,slot-scope接收從B組件中傳出來(lái)solt的值,slot=“name”,是為插槽具名;
B組件中調(diào)用C組件的render函數(shù)
<sub-grid ref="indexGridSub">
<span
v-for="(item, index) in fields"
:key="index"
slot="name"
slot-scope="field"
>
<slot name="name" :field="field"></slot>
</span>
</sub-grid>
B組件span中 slot是動(dòng)態(tài)的值,和A組件中的slot同一個(gè)值,才能接受來(lái)自A組件自定義的插槽,
field是來(lái)自于C組件中傳遞的值
C組件是render函數(shù)
h(
"td",
{
style: { width: field.width + "px" },
class: { borderRight },
// 作用域插槽格式
// { name: props => VNode | Array<VNode> }
scopedSlots: this.$scopedSlots.name,
// 如果組件是其他組件的子組件,需為插槽指定名稱
slot: 'name'
},
this.$scopedSlots.name({
field: field,
rowData: rowData,
})
);
C組件往上傳遞的值就是 {field:'', rowData: ''} 的對(duì)象
以上這篇解決vue數(shù)據(jù)不實(shí)時(shí)更新的問(wèn)題(數(shù)據(jù)更改了,但數(shù)據(jù)不實(shí)時(shí)更新)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3動(dòng)態(tài)倒計(jì)時(shí)的代碼實(shí)現(xiàn)
在使用Vue框架開(kāi)發(fā)Web應(yīng)用時(shí),倒計(jì)時(shí)功能是一個(gè)常見(jiàn)的需求,它可以在一定時(shí)間內(nèi)重復(fù)執(zhí)行某些操作,比如防止用戶重復(fù)提交表單、限制投票次數(shù)、實(shí)現(xiàn)驗(yàn)證碼獲取等功能,所以本文給大家介紹了Vue3動(dòng)態(tài)倒計(jì)時(shí)的代碼實(shí)現(xiàn),需要的朋友可以參考下2024-09-09
vue跳轉(zhuǎn)到詳情頁(yè)的兩種實(shí)現(xiàn)方法
最近接觸了vue項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于vue跳轉(zhuǎn)到詳情頁(yè)的兩種實(shí)現(xiàn)方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-06-06
Vue利用路由鉤子token過(guò)期后跳轉(zhuǎn)到登錄頁(yè)的實(shí)例
下面小編就為大家?guī)?lái)一篇Vue利用路由鉤子token過(guò)期后跳轉(zhuǎn)到登錄頁(yè)的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
vue translate peoject實(shí)現(xiàn)在線翻譯功能【新手必看】
這篇文章主要介紹了vue translate peoject實(shí)現(xiàn)在線翻譯功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
npm安裝vue腳手架報(bào)錯(cuò)警告npm WARN deprecated
安裝vue腳手架報(bào)錯(cuò)可能具體原因比較多,可以根據(jù)報(bào)錯(cuò)信息進(jìn)行排查,本文主要介紹了npm安裝vue腳手架報(bào)錯(cuò)警告npm WARN deprecated,感興趣的可以了解一下2023-11-11

