在「逐步學習Vue」中探索「Vue、Laravel 和AJAX」課程時系列中,學習者常常會遇到警告:
vue.js:2574 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "list" (found in component )
警告的原因
當created()生命週期鉤子中的程式碼嘗試修改列出道具。在 Vue 2 中,props 是不可變的,這意味著它們的值不能直接修改。用變異值覆蓋 prop 會觸發警告。
解
為了避免此警告,我們需要建立一個取決於初始值的資料或計算屬性清單道具的。然後,當父元件的狀態改變時,Vue.js 會回應式更新此屬性,確保元件的行為保持一致。
重構程式碼
Vue.component('task', { template: '#task-template', props: ['list'], data: function () { return { mutableList: JSON.parse(this.list), // Create data property based on prop } } });
在此在這種情況下,我們從list 屬性建立一個mutableList 資料屬性,它將用於儲存任何本地修改。
附加說明
以上是如何解決 Vue 2 中的「避免改變 Props」警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!