亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Vuex 快速入門(簡單易懂)

2019-11-19 12:53:20
字體:
來源:轉載
供稿:網友

一、vuex介紹

 (1)vuex是什么?

1. 借鑒 了Flux、Redux、 The Elm Architecture

2. 專為 Vue.js 設計 的狀態管理模式

3. 集中式存儲和管理應用程序中所有組件的狀態

4. Vuex 也集成到 Vue 的官方調試工具

5. 一個 Vuex 應用的核心是 store(倉庫,一個容器),store包含著你的應用中大部分的狀態 (state)。

(2)什么情況下我應該使用 Vuex?

1. 不適用:小型簡單應用,用 Vuex 是繁瑣冗余的,更適合使用簡單的 store 模式。

2. 適用于:中大型單頁應用,你可能會考慮如何把組件的共享狀態抽取出來,以一個全局單例模式管理,不管在哪個組件,都能獲取狀態/觸發行為,解決問題如下:

① 多個視圖使用于同一狀態:

傳參的方法對于多層嵌套的組件將會非常繁瑣,并且對于兄弟組件間的狀態傳遞無能為力

② 不同視圖需要變更同一狀態:

采用父子組件直接引用或者通過事件來變更和同步狀態的多份拷貝,通常會導致無法維護的代碼

(3)Vuex 和單純的全局對象有何不同?

1.Vuex 的狀態存儲是響應式的

當 Vue 組件從 store 中讀取狀態的時候,若 store 中的狀態發生變化,那么相應的組件也會相應地得到高效更新。

2.你不能直接改變 store 中的狀態

改變 store 中的狀態的唯一途徑就是顯式地提交 (commit) mutation,方便我們跟蹤每一個狀態的變化。

二、vuex安裝

* vue cli 3 中搭建腳手架預設時選擇了“vuex”后便安裝了vuex,可跳過此步閱讀

(1)<script>引入

在 Vue 之后引入 vuex 會進行自動安裝:

<script src="/path/to/vue.js"></script><script src="/path/to/vuex.js"></script>

(2) 包管理

npm install vuex --save //yarn add vuex

在一個模塊化的打包系統中,您必須顯式地通過 Vue.use() 來安裝 Vuex: 

import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)

(3)git clone 自己構建

git clone https://github.com/vuejs/vuex.git node_modules/vuexcd node_modules/vuexnpm installnpm run build

(4)兼容

Vuex 依賴 Promise。如果你支持的瀏覽器并沒有實現 Promise (如 IE),那么你可以使用一個 polyfill 的庫(如  es6-promis)

1.你可以通過 CDN 將其引入,window.Promise 會自動可用:

<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script>

2.包管理器安裝:

npm install es6-promise --save //yarn add es6-promise 

然后,將下列代碼添加到你使用 Vuex 之前的一個地方:

import 'es6-promise/auto'

三、使用

(1)使用介紹

1.搭建store實例

①. 在創建vuex實例的地方引入vue、vuex,使用vuex:

import Vue from 'vue'//引入vueimport Vuex from 'vuex'//引入vuexVue.use(Vuex); //使用 vuex

②. 如果你的actions中用到 store.dispath() ,要引入store

import store from './store' //引入狀態管理 store

③. new 一個 Vuex.Store 實例,并注冊 state、mutations、actions、getters到 Vuex.Store 實例中

ps. 你可以像上面那樣將“屬性和值”直接寫在實例中,當代碼量大時,你也可以分別寫個.js文件,如下圖:

然后引入到 store/index.js 注冊到vuex實例中,如:

2.創建好 vuex.store 后,你需要在入口文件 main.js 中引入 store 并注冊到 vue 實例中,這樣就可以在任何組件使用store了:

3.在組件中使用:

①. 引入vuex中各屬性對應的輔助函數:

import {mapActions, mapState,mapGetters} from 'vuex' //注冊 action 、 state 、getter

②. 使用store中的狀態數據、方法:

使用方法有很多,這種事最簡單實用的,更多可以查看官網學習:https://vuex.vuejs.org/zh/

(2)具體demo

來個簡單易懂的計數

eg:store.js

import Vue from 'vue';import Vuex from 'vuex'; //引入 vueximport store from './store' //注冊storeVue.use(Vuex); //使用 vuexexport default new Vuex.Store({  state: {    // 初始化狀態    count: 0,    someLists:[]  },  mutations: {    // 處理狀態    increment(state, payload) {      state.count += payload.step || 1;    }  },  actions: {    // 提交改變后的狀態    increment(context, param) {      context.state.count += param.step;      context.commit('increment', context.state.count)//提交改變后的state.count值    },    incrementStep({state, commit, rootState}) {      if (rootState.count < 100) {        store.dispatch('increment', {//調用increment()方法          step: 10        })      }    }  },  getters: {    //處理列表項    someLists: state =>param=> {      return state.someLists.filter(() => param.done)    }  }})

使用時,eg:

main.js:

import Vue from 'vue'import App from './App.vue'import router from './router'import store from './store' //引入狀態管理 storeVue.config.productionTip = falsenew Vue({ router, store,//注冊store(這可以把 store 的實例注入所有的子組件) render: h => h(App)}).$mount('#app')

views/home.vue:

<template> <div class="home">  <!--在前端HTML頁面中使用 count-->  <HelloWorld :msg="count"/>  <!--表單處理 雙向綁定 count-->  <input :value="count" @input="incrementStep"> </div></template><script>  import HelloWorld from '@/components/HelloWorld.vue'  import {mapActions, mapState,mapGetters} from 'vuex' //注冊 action 和 state  export default {    name: 'home',    computed: {      //在這里映射 store.state.count,使用方法和 computed 里的其他屬性一樣      ...mapState([        'count'      ]),      count () {        return store.state.count      }    },    created() {      this.incrementStep();    },    methods: {      //在這里引入 action 里的方法,使用方法和 methods 里的其他方法一樣      ...mapActions([        'incrementStep'      ]),      // 使用對象展開運算符將 getter 混入 computed 對象中      ...mapGetters([        'someLists'        // ...      ])    },    components: {      HelloWorld    }  }</script>

運行結果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本色道久久综合狠狠躁篇怎么玩| 国产在线视频91| 欧美黑人性生活视频| xvideos亚洲| 亚洲最大福利视频| 欧美精品videosex性欧美| 欧美肥老妇视频| 一区二区三区视频免费在线观看| 欧美在线视频播放| 色婷婷av一区二区三区在线观看| 国产精品视频白浆免费视频| 国产精品成人av性教育| 91在线|亚洲| 中文字幕在线国产精品| 国产精品日韩在线| 亚洲成av人片在线观看香蕉| 久久精品夜夜夜夜夜久久| 色狠狠久久aa北条麻妃| 国产精品扒开腿做爽爽爽视频| 亚洲欧美国产一区二区三区| 国产一区二区三区视频| 日韩精品有码在线观看| 日韩精品高清在线观看| 中文字幕欧美精品日韩中文字幕| 亚洲第一区第一页| 国产91免费看片| 亚洲在线观看视频网站| 欧美大尺度在线观看| 97国产真实伦对白精彩视频8| 中文一区二区视频| 欧美成人免费一级人片100| 久久久久国产精品一区| 亚洲自拍偷拍区| 国产91精品高潮白浆喷水| 欧美性少妇18aaaa视频| 成人综合网网址| 中文字幕精品—区二区| 国产精品中文字幕在线观看| 欧美精品午夜视频| 日本精品va在线观看| 欧美精品在线极品| 日韩av电影国产| 久久精品国亚洲| 日韩不卡中文字幕| 米奇精品一区二区三区在线观看| 亚洲2020天天堂在线观看| 中文字幕v亚洲ⅴv天堂| 91sa在线看| 欧美高跟鞋交xxxxhd| 91成人精品网站| 成人激情黄色网| 91精品国产91久久久久久| 亚洲精品国精品久久99热| 亚洲国产成人爱av在线播放| 国内精品久久影院| 91在线精品视频| 欧美孕妇与黑人孕交| 日韩精品高清在线观看| 国产精品久久久久久久久久久久久| 青草热久免费精品视频| 亚洲欧美一区二区精品久久久| 久久久这里只有精品视频| 精品综合久久久久久97| 日韩精品久久久久久福利| 国产精品久久久久不卡| 日韩视频免费大全中文字幕| 久久伊人91精品综合网站| 国产欧美婷婷中文| 富二代精品短视频| 欧美精品制服第一页| 欧美另类老肥妇| 91精品国产色综合久久不卡98| 在线日韩精品视频| 欧美成人精品在线| 国产99视频精品免视看7| 伊人久久久久久久久久久久久| 亚洲视频综合网| 亚洲精品狠狠操| 国产成人精品在线观看| 国产999视频| 国产精品极品在线| 国产精品r级在线| 欧美日韩激情视频8区| 日本精品在线视频| 91tv亚洲精品香蕉国产一区7ujn| 亚洲性xxxx| 日韩毛片在线观看| 久久精品国产2020观看福利| 日韩在线观看电影| 国产成人综合精品在线| 欧洲日本亚洲国产区| 1769国产精品| 免费97视频在线精品国自产拍| 一区二区欧美激情| 亚洲国产欧美一区二区三区久久| 成人黄色网免费| 亚洲伊人久久大香线蕉av| 欧美大尺度在线观看| 亚洲黄色av女优在线观看| 久久免费国产视频| 国产成人精品免费视频| 国产精品久久久一区| 日韩视频永久免费观看| 国产精品av在线播放| 日韩av在线最新| 国模私拍视频一区| 国产精品稀缺呦系列在线| 亚洲男人av电影| 亚洲成色777777在线观看影院| 欧洲成人在线视频| 亚洲精品美女久久久| 午夜精品99久久免费| 亚洲偷欧美偷国内偷| 欧美日韩亚洲系列| 亚洲自拍中文字幕| 亚洲欧美国产日韩天堂区| 久久久在线免费观看| 97超级碰碰碰久久久| www.亚洲人.com| 日韩在线免费视频| 欧美视频在线观看免费网址| 欧美激情视频播放| 韩国视频理论视频久久| 高清在线视频日韩欧美| 97在线视频免费看| 一级做a爰片久久毛片美女图片| 久久久久国产精品www| 精品一区二区电影| 国产美女精品免费电影| 国产主播喷水一区二区| 国产精品亚洲自拍| 亚洲天堂av电影| 91成人天堂久久成人| 亚洲国产精品免费| 精品久久久久久久久久国产| 96精品视频在线| 成人午夜在线视频一区| 精品久久久久久中文字幕大豆网| 久久久久久九九九| 欧美一区亚洲一区| 日韩欧美在线免费| 精品国产欧美成人夜夜嗨| 亚洲精品99久久久久中文字幕| 亚洲va国产va天堂va久久| 国产欧美日韩精品丝袜高跟鞋| 久久在线观看视频| 黑人巨大精品欧美一区二区一视频| 欧美专区福利在线| www.国产一区| 亚洲黄色www| 亚洲电影在线看| 亚洲综合视频1区| 日韩极品精品视频免费观看| 亚洲一区二区三区视频播放| 亚洲欧美日韩中文在线| 日韩在线观看免费高清| 国产精品∨欧美精品v日韩精品| 亚洲影视中文字幕| 欧美激情videos| 成人乱人伦精品视频在线观看| 精品成人av一区| 国产在线日韩在线| 国产成人一区二区三区电影| 欧美成人午夜影院|