在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ vue中data函數(shù)中的蘇醒和state有什么區(qū)別

vue中data函數(shù)中的蘇醒和state有什么區(qū)別

一般我們寫(xiě)組件有data函數(shù)

export default() {
  ...
  data() {
    return {
      count: 0
    }
  }
}

與我定義的state有什么區(qū)別

const store = new Vuex.store ({
 state: {
  count: 3
 }
})

有什么區(qū)別

回答
編輯回答
我不懂

data里面的如果你要用的話(huà)一般都是自身組件 你當(dāng)然也可以傳給父組件或者子組件 但是如果很多都用到的話(huà) 會(huì)很麻煩 vuex就是解決組件之間傳值更方便 在哪個(gè)組件都能直接取到 不用一層一層傳了

2018年2月19日 09:56
編輯回答
陪妳哭

放在 store 里面就是為了方便非父子組件操作該狀態(tài),放在組件中的話(huà)如果想要改變這個(gè)狀態(tài)我知道的有三種方式

  • 父子組件通信
  • vue 提供的 eventBus
  • 當(dāng)前組件自己操作

舉個(gè)例子:

在 header 組件中需要知道是否已登錄的狀態(tài),如果你將狀態(tài)放在header組件中,那么你只有在當(dāng)前組件里面重新獲取一次狀態(tài)再進(jìn)行相關(guān)操作,別的組件還需要知道這個(gè)狀態(tài)的話(huà)還需要在自身組件中重新做一遍重復(fù)的操作


放在 store 就不同了,你只需要在 storestate 定義一個(gè)狀態(tài)值isLogin,然后在 action 里面定義一個(gè)獲取登錄狀態(tài)的方法,獲取成功之后通過(guò)mutation去改變 state 里面的isLogin的值,
那么你可以在任何一個(gè)組件中都可以去使用這個(gè)isLogin狀態(tài)了


以上,希望能幫助到你

2017年5月17日 23:21