qq_遁去的一_1
2018-12-19 17:15:43
因為項目要使用vue開發(fā)。學(xué)習(xí)了一段時間之后有幾個問題一直困惑著我:(1)首先就是.vue結(jié)尾的文件為何需要export default,就像下面的代碼一樣?(2)為什么data需要return,我不用return,直接 data(){ menu:MENU.data, poi:POILIST.data}不行嗎?這兩個問題問了幾個人都不能給我合理的解釋,求懂的兄弟們給個幫助,謝謝了。<script> import { POILIST, MENU } from '../config/vuex.js'; export default { data() { return { menu: MENU.data, poi: POILIST.data } }, methods: { set() { MENU.list.push('首頁'); POILIST.list.push({ lng: 124.1, lat: 42.3 }); } } }</script>
1 回答

ABOUTYOU
TA貢獻1812條經(jīng)驗 獲得超5個贊
export default是ES6的語法,意思是將這個東西導(dǎo)出,你要import 引入東西,導(dǎo)出了才能引用,data是一個函數(shù)是因為data是被很多組件共享的,如果 data 是一個的對象的話,每次實例化會造成所有的實例共享引用同一個數(shù)據(jù)對象,如下
var fnc= function() {}
fnc.prototype.data = {
a: 1,
b: 2,
}
var fnc1 = new fnc()
var fnc2 = new fnc()
fnc1.data.a === fnc2.data.a // true
fnc2.data.b = 1;
fnc2.data.b // ==1
data 是函數(shù)的話,每次創(chuàng)建一個新實例后,調(diào)用 data 函數(shù),用return返回初始數(shù)據(jù)的一個全新副本數(shù)據(jù)對象,就避免了所有實例共享引用同一個數(shù)據(jù)對象。
添加回答
舉報
0/150
提交
取消