vue 0 undefined 是一個(gè)常見的問題,主要是因?yàn)樵谑褂肰ue.js時(shí),數(shù)據(jù)未能正常傳遞,而導(dǎo)致的。例如,當(dāng)我們?cè)赩ue.js中使用watch來監(jiān)聽數(shù)據(jù)對(duì)象某個(gè)屬性的變化時(shí),如果這個(gè)屬性在初始值中是沒有定義的,那么Vue.js就會(huì)返回undefined。這個(gè)問題的解決方法其實(shí)非常簡單,只需要在數(shù)據(jù)對(duì)象中先定義好該屬性即可。
//錯(cuò)誤代碼 new Vue({ el: '#app', data: { content: '' }, watch: { content() { console.log(this.content.length); } } }) //正確代碼 new Vue({ el: '#app', data: { content: '' //在這里定義content屬性,避免出現(xiàn)undefined問題 }, watch: { content() { console.log(this.content.length); } } })
除了在使用watch中出現(xiàn)undefined問題之外,在Vue.js中,如果我們?cè)赾omputed屬性和methods方法中訪問某個(gè)數(shù)據(jù)屬性時(shí),如果該屬性初始值是undefined,那么Vue.js同樣會(huì)拋出undefined錯(cuò)誤。解決方法也非常簡單,只需要在數(shù)據(jù)對(duì)象中先定義好屬性即可避免該問題。
//錯(cuò)誤代碼 new Vue({ el: '#app', data: { content: '' }, computed: { contentCount() { return this.content.length; } }, methods: { getContentCount() { return this.contentCount; } } }) //正確代碼 new Vue({ el: '#app', data: { content: '' //在這里定義content屬性,避免出現(xiàn)undefined問題 }, computed: { contentCount() { return this.content.length; } }, methods: { getContentCount() { return this.contentCount; } } })
總之,在使用Vue.js時(shí),避免出現(xiàn)undefined問題的方法就是在數(shù)據(jù)對(duì)象中先定義好所有的數(shù)據(jù)屬性。這樣可以確保我們?cè)谑褂脀atch,computed和methods屬性時(shí),不會(huì)出現(xiàn)異常。