vue增加資料不更新的解決方法:1、使用「this.$set(target, key, value);」或「Vue.set(target, key, value)」方式新增屬性; 2.在render函數中動態使用多個slot,並且給slot傳值即可。
本教學操作環境:Windows10系統、Vue 3版、Dell G3電腦。
vue增加資料不更新怎麼辦?
解決vue資料不即時更新的問題(資料變更了,但資料不即時更新)
一、在我們使用vue進行開發的過程中,可能會遇到一種情況:
當生成vue實例後,當再次賦值資料時,有時並不會自動更新到視圖上去;
向響應式物件中加入一個屬性,並確保這個新屬性同樣是響應式的,且觸發視圖更新。它必須用於在響應式物件上新增屬性,因為Vue 無法探測普通的新增屬性,需要用vue內建的方法
二、Vue.set() 響應式新增與修改資料
此時我們需要知道Vue.set()需要哪些參數,官方API:https://cn.vuejs.org/v2/api/#Vue-set
##呼叫方法:Vue .set( target, key, 值 ) 或this.$set(target, key, 值);target:要更改的資料來源(可以是物件或陣列)key:要更改的具體資料value :重新賦值的值,呼叫:this.$set(target, key, value);補充知識:vue Render scopedSlots render 中slot 的一般預設使用方式如下: this.$slots.default 對用template的<index-grid> <div slot="name" slot-scope="field" class="check-link" @click="rowLinkClick" > <span>{{ field.field.rowData.name }}</span> </div> </index-grid>
<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>
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, }) );
vue.js影片教學》
以上是vue增加資料不更新怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!