中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vuex筆記

發布時間:2020-06-15 17:59:13 來源:網絡 閱讀:380 作者:xxxpjgl 欄目:web開發

1、vuex——數據倉庫,管理的是狀態,是一個專門為vue.js設計的集中式狀態管理架構。
狀態:可以理解為在data中的屬性需要共享給其他vue組件使用的部分,就叫做狀態。簡單的說就是data中需要共用的屬性。
比如:我們有幾個頁面要顯示用戶名稱和用戶等級、或者顯示用戶的地理位置。如果我們不把這些屬性設置為狀態,那每個頁面遇到后,都會到服務器進行查找計算,返回后再顯示。在中大型項目中會有很多共用的數據,所以就有了vuex。

2、vuex小demo之顯示count并且可以進行加減操作
a.首先npm install vuex --save 本地安裝vuex,一定要加上 –save,因為這個包我們在生產環境中是要使用的
b.新建vuex文件夾,里面新建store.js,并且引入vue和vuex
import Vue from 'Vue';
import Vuex from 'Vuex';
Vue.use(Vuex); //注冊使用
c.store.js:新建常量對象count,并且通過
export default new Vuex.Store({
state,
mutations
})導出到外部使用
d.在components文件夾下新建vue模板,在模板中引入store.js文件,import store from '@/Vuex/store'

                <div>
                        <h3>{{msg}}</h3>
                        <p>
                            <button @click="$store.commit('add')">+</button>
                            <button @click="$store.commit('reduce')">-</button>
                        </p>
                        {{$store.state.count}}
                    </div>
                    導出:export default({
                        data(){
                            return msg:'Vuex'
                        },
                        store //注冊
                    })
                    輸出count的值:{{$store.state.count}}
        e.在store.js文件中加入兩個改變state的方法
                count mutations = {
                    add(state){
                        state.count++;
                    },
                    reduce(state){
                        state.count--;
                    }
                }
        這里的mutations是固定的寫法,意思是改變的,我們要改變state的數值的方法,必須寫在mutations里。

3、state
一種狀態對象,共享值
將狀態對象賦值給內部對象,也就是把store.js中的值,賦值到模板中使用(和模板中獲得data的方法類似了)
賦值方式有三種:
a.通過計算屬性
<h4>{{count}}</h4>
computed:{
count(){
return this.$store.state.count;
}
}
b.通過數組操作
首先引入mapState
import {mapState} from 'vuex';
然后計算屬性:
computed:mapState(['count']),
4、Mutations修改狀態(同步)
mutations存在的意義,就是寫方法改變狀態store中的共享值,可傳遞參數,如下圖
count mutations = {
add(state,n){
state.count+=n;
}
}
使用:<button @click="$store.commit('add',10)"></button> //使用方法是用$store.commit(),而不是直接add(),注意了!!!
如果不想在html里面使用$store.commit()這么繁瑣,而是想直接用add(),和methods里面的方法一樣的用法,那么也可以:
首先引入mapMutations
import mapMutations from 'vuex'
然后定義methods
methods:mapMutations(['reduce']),
即可在模板里面使用了: <button @click="reduce()"></button>
5、getters計算過濾操作
getters:相當于store倉庫里的computed,狀態每操作一次,都會經過getters過濾一次,類似一個安檢門,然后返回給用戶
es6 ...操作符,用于將一個數組||類數組||字符串轉為用逗號分隔的參數序列,展開數組
這家伙是用來對數組進行操作的,把數組里面的東西統統拿出來
功能是把數組或類數組對象展開成一系列用逗號隔開的值

6、actions異步修改狀態(異步)

向AI問一下細節
推薦閱讀:
  1. 怎么用vuex
  2. Vuex教程

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

留坝县| 莱阳市| 阿尔山市| 西昌市| 马尔康县| 三江| 宁波市| 迁西县| 当涂县| 舒城县| 巴马| 潜山县| 靖边县| 界首市| 和政县| 彰武县| 克什克腾旗| 壶关县| 丹巴县| 东乡| 安龙县| 福贡县| 屏山县| 繁峙县| 池州市| 拉萨市| 庄浪县| 洛阳市| 黄冈市| 高唐县| 青铜峡市| 扎兰屯市| 上思县| 开化县| 玛曲县| 水富县| 翁源县| 新平| 寿宁县| 松原市| 抚顺市|