Vuex從入門(mén)到入門(mén)

先說(shuō)一個(gè)常用的vue輔助工具vue-devtools安裝教程。

一、什么是Vuex?為啥要使用它呢?

首先我們假設(shè)一個(gè)場(chǎng)景:當(dāng)我們需要一個(gè)“常量”,在各個(gè)組件之間傳播(或者是.vue文件中傳播),父組件,子組件,孫組件等5層到6層。當(dāng)用戶打開(kāi)幾個(gè)窗口進(jìn)行數(shù)據(jù)操作的時(shí)候,數(shù)據(jù)就可能被污染(大中型項(xiàng)目中常見(jiàn))。這樣我們就需要一個(gè)控制中心(我叫它“核心前端數(shù)據(jù)庫(kù)”)的東西——這也vuex中的store(倉(cāng)庫(kù)),它把所有公用數(shù)據(jù)方法,當(dāng)有“人”要改的時(shí)候,就得來(lái)我這里修改。

二、簡(jiǎn)單的demo

1. 新建store.js用來(lái)管理狀態(tài)(也就是vuex)。
/* 倉(cāng)庫(kù)文件 */
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex);

const state = { //一般通過(guò)外部文件引入的,東西很多的。
  //定義數(shù)據(jù) --- 類(lèi)似data
  num: 12  //生成了一個(gè)靜態(tài)的常量
}
const mutations = {
  //定義方法 --- 類(lèi)似methods
  add(state){//state 是把上面的數(shù)據(jù)引入進(jìn)來(lái)的
    state.num++;
  },
   minus(state){
     state.num--;
   }
}
export default new Vuex.Store({
  state,
  mutations
});
2. 在入口文件main.js中引入
import Vue from 'vue'
import store from './store/store.js' //全局中引入vuex
import App from './App.vue'

new Vue({
  el: '#app',
  store,
  render: h => h(App)
})
3. 在相關(guān)組件中使用(此處是App.vue)
<template>
  <div id="app">
    {{ $store.state.num }}  <!-- vue靜態(tài)的常量   -->  <!-- $store是共有的意思 -->
    <div class="">
      <button type="button" name="buttonAdd" @click="$store.commit('add')">加一個(gè)</button><!-- vue2.0  的寫(xiě)法 -->
      <button type="button" name="buttonAdd" @click="$store.commit('minus')">減一個(gè)</button>
    </div>
  </div>
</template>

所有.vue文件操作數(shù)據(jù)的時(shí)候都用這種方法就不會(huì)講數(shù)據(jù)弄混了。
vue-devtools中的vuex對(duì)事件的監(jiān)測(cè),當(dāng)我們進(jìn)行操作的時(shí)候就會(huì)有記錄相關(guān)信息。


繼續(xù)學(xué)習(xí)請(qǐng)點(diǎn)擊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 來(lái)源:github.com Vue.js開(kāi)源項(xiàng)目速查表:https://www.ctolib.com/cheats...
    zhangtaiwei閱讀 11,916評(píng)論 1 159
  • Vuex 是一個(gè)專(zhuān)為 Vue.js 應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)...
    白水螺絲閱讀 4,776評(píng)論 7 61
  • 又是忙碌的一天,孩子不在家心里還真的挺想他,平時(shí)在身邊時(shí)嫌他太吵,這走了以后還真感覺(jué)少了許多東西。孩子也在逐漸長(zhǎng)...
    郭錫厚媽媽閱讀 316評(píng)論 0 0
  • 宸宸,時(shí)間過(guò)得真快,一眨眼你就已經(jīng)兩歲了。很慶幸這兩年來(lái)你的成長(zhǎng)一直由我陪伴。與其說(shuō)是我在照顧你,不如說(shuō)是你在引導(dǎo)...
    光年123閱讀 446評(píng)論 0 0
  • 二貨哥剛才去樓下買(mǎi)水,剛掏出5塊錢(qián),一陣風(fēng)刮跑了,到處沒(méi)找到。 二貨哥淡定的又掏出5塊錢(qián),故意扔掉,看看風(fēng)往哪里刮...
    老羅xt閱讀 524評(píng)論 1 1

友情鏈接更多精彩內(nèi)容