国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

VueX狀態(tài)管理器 的應(yīng)用

sydMobile / 1822人閱讀

摘要:級(jí)別在中進(jìn)行請(qǐng)求數(shù)據(jù)請(qǐng)求數(shù)據(jù)的接口相當(dāng)于調(diào)用了在中定義的修改狀態(tài)的方法就是在改變狀態(tài)時(shí)要修改的數(shù)據(jù),需要在這傳遞過(guò)去。

VueX狀態(tài)管理器
cnpm i vuex axios -S
1 創(chuàng)建Vuex 倉(cāng)庫(kù)
import Vue from "vue"
import Vuex from "vuex"
vue.use(Vuex)
const store = new VueX.store({
    state: {//存放狀態(tài)},
    mutations:{//唯一修改狀態(tài)的地方,不在這里做邏輯處理}
})
export default store

2 在入口文件main.js下引入store
import store from "./store/index.js"
將store 放到根實(shí)例里  以供全局使用
new Vue({
    el:"#app",
    store,
    components:{App},
    template:
})
開(kāi)始使用store(以home組件為例)

Vuex的使用也是一種漸進(jìn)式的,你可以從最簡(jiǎn)單的開(kāi)始使用,根據(jù)經(jīng)驗(yàn)和技術(shù)的增加,再漸進(jìn)增強(qiáng)對(duì)它的使用,如果按照級(jí)別算vuex的使用可以從最基本的t1級(jí)別開(kāi)始,先總結(jié)最基本的前三個(gè)版本,后續(xù)有時(shí)間再總結(jié)其他的

T1級(jí)別
1.
在hoome/script.js中進(jìn)行請(qǐng)求數(shù)據(jù)
import Vue from "vue"
import axios from "axios"
export default {
    mounted(){
        axios.get("請(qǐng)求數(shù)據(jù)的接口")
        .then((res)=>{this.$store.commit("changeList",res.data)})
           //changeList相當(dāng)于調(diào)用了在store.mutations中定義的修改狀態(tài)的方法
                    //res.data  就是在改變狀態(tài)時(shí)要修改的數(shù)據(jù),需要在這傳遞過(guò)去。
        .catch((err)=>{console,log(err)})
        }
    }
2.
在store/index.js中定義
import Vue from "vue"
import Vuex from "vuex"
vue.use(Vuex)
const store = new VueX.store({
    state: {
        //存放狀態(tài)
        list: [ ]     //存放一個(gè)空的數(shù)組
},
    mutations:{
        //唯一修改狀態(tài)的地方,不在這里做邏輯處理
        //定義一個(gè)修改list的方法
            //state 指上面存放list的對(duì)象,data 為在請(qǐng)求數(shù)據(jù)出傳過(guò)來(lái)請(qǐng)求到的數(shù)據(jù)
        changeList (state,data) {
            state.list = data  //將請(qǐng)求來(lái)的數(shù)據(jù)賦值給list
      }
    }
   })
export default store

3.
在home/index.vue中渲染


注意點(diǎn):
(
如果我們?cè)趆ome組件中獲取的數(shù)據(jù),可以在其他組件中使用,但是是當(dāng)頁(yè)面刷新默認(rèn)進(jìn)入home頁(yè),也就是相當(dāng)于修改了數(shù)據(jù),再點(diǎn)擊其他頁(yè)面也能有數(shù)據(jù)。如果我們?cè)趗ser組件中獲取的數(shù)據(jù)要在home組件中使用,當(dāng)頁(yè)面刷新數(shù)據(jù)是不會(huì)顯示的,因?yàn)榇藭r(shí)還沒(méi)有觸發(fā)user組件中的更改數(shù)據(jù)的方法,所以數(shù)據(jù)為空,當(dāng)點(diǎn)擊user頁(yè)面時(shí),就會(huì)有數(shù)據(jù),這個(gè)時(shí)候再去點(diǎn)擊home頁(yè)面我們就能夠看到在home 組件中使用user組件中獲取的數(shù)據(jù)了。解決這種問(wèn)題的辦法可以將數(shù)據(jù)存到本地一份或者都在首頁(yè)進(jìn)行請(qǐng)求數(shù)據(jù)
)
T2級(jí)別
在頁(yè)面進(jìn)行渲染的時(shí)候我們需要通過(guò)this.store.state去拿數(shù)據(jù),這樣的寫(xiě)法太長(zhǎng)而且不太好
用計(jì)算屬性結(jié)合mapState去解決這個(gè)問(wèn)題
1
在home/script.js中進(jìn)行操作
import Vue from "vue"
import mapState from "vuex"
import axios from "axios"
export default {
    computed:{
        //mapState為輔助函數(shù)
        ...mapState(["list"])
    },
    mounted(){
        axios.get("請(qǐng)求數(shù)據(jù)的接口")
        .then((res)=>{this.$store.commit("changeList",res.data)})
        .catch((err)=>{console,log(err)})
        }
    }

2
在home/index.vue中渲染


T3級(jí)別


  使用常量去代替事件類(lèi)型(便于查看狀態(tài),利于維護(hù))
    1
    在store下創(chuàng)建mutation-type.js
    export const  CHANGE_LIST = "CHANGE_LIST"
    
    2
    在store/index.js引入mutation-type.js
    import Vue from "vue"
    import Vuex from "vuex"
    import {CHANGE_LIST }  from‘./mutation-type.js’
    vue.use(Vuex)
    const store = new VueX.store({
        state: {
            list: [ ]     //存放一個(gè)空的數(shù)組
    },
        mutations:{
        //我們可以使用Es6風(fēng)格的計(jì)算屬性命名功能來(lái)使用一個(gè)常量作為函數(shù)名
            [CHANGE_LIST] (state,data) {
                state.list = data  //將請(qǐng)求來(lái)的數(shù)據(jù)賦值給list
          }
        }
       })
    export default store
    
    3
    在home/script.js中進(jìn)行引入
    import Vue from "vue"
    import mapState from "vuex"
    import axios from "axios"
    import {CHANGE_LIST} from ‘../../store/mutation-type.js’
    export default {
        computed:{
            //mapState為輔助函數(shù)
            ...mapState(["list"])
        },
        mounted(){
            axios.get("請(qǐng)求數(shù)據(jù)的接口")
            .then((res)=>{this.$store.commit(CHANGE_LIST,res.data)})
            .catch((err)=>{console,log(err)})
            }
        }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/96559.html

相關(guān)文章

  • VueX狀態(tài)管理 應(yīng)用

    摘要:級(jí)別在中進(jìn)行請(qǐng)求數(shù)據(jù)請(qǐng)求數(shù)據(jù)的接口相當(dāng)于調(diào)用了在中定義的修改狀態(tài)的方法就是在改變狀態(tài)時(shí)要修改的數(shù)據(jù),需要在這傳遞過(guò)去。 VueX狀態(tài)管理器 cnpm i vuex axios -S 1 創(chuàng)建Vuex 倉(cāng)庫(kù) import Vue from vue import Vuex from vuex vue.use(Vuex) const store = new VueX.store({ ...

    shadowbook 評(píng)論0 收藏0
  • VueX狀態(tài)管理 應(yīng)用

    摘要:級(jí)別在中進(jìn)行請(qǐng)求數(shù)據(jù)請(qǐng)求數(shù)據(jù)的接口相當(dāng)于調(diào)用了在中定義的修改狀態(tài)的方法就是在改變狀態(tài)時(shí)要修改的數(shù)據(jù),需要在這傳遞過(guò)去。 VueX狀態(tài)管理器 cnpm i vuex axios -S 1 創(chuàng)建Vuex 倉(cāng)庫(kù) import Vue from vue import Vuex from vuex vue.use(Vuex) const store = new VueX.store({ ...

    golden_hamster 評(píng)論0 收藏0
  • vuex 閑置狀態(tài)重置方案

    摘要:為了做到頁(yè)面的極致優(yōu)化,我們需要將那些閑置的狀態(tài)重置,以減小占用的內(nèi)存空間。不如當(dāng)路由改變時(shí)去重置中的所有狀態(tài)。這里只是提供一種重置狀態(tài)的一種方案,如果有更好方案還請(qǐng)各位看官留言。 前言 大型單頁(yè)應(yīng)用(后面都是指spa),我們往往會(huì)通過(guò)使用狀態(tài)管理器 vuex 去解決組件間狀態(tài)共享與狀態(tài)傳遞等問(wèn)題。這種應(yīng)用少則幾十個(gè)單頁(yè),多則上百個(gè)單頁(yè)。隨著路由的頻繁切換,每個(gè)路由對(duì)應(yīng)的 vuex 中...

    junfeng777 評(píng)論0 收藏0
  • 無(wú)痛學(xué)會(huì)各種 2 Vue2+Vuex2+Webpack2 前后端同構(gòu)渲染

    摘要:它會(huì)檢測(cè)出最大靜態(tài)子樹(shù)就是不需要?jiǎng)討B(tài)性的子樹(shù)并且從渲染函數(shù)中萃取出來(lái)。這樣在每次重渲染的時(shí)候,它就會(huì)直接重用完全相同的同時(shí)跳過(guò)比對(duì)。需要注意的是,中的操作必須是同步的,不可以存在異步操作的情況。 新增:哈哈,最近又推出了 vue 的文章,在這里放個(gè)鏈接~手把手教你從零寫(xiě)一個(gè)簡(jiǎn)單的 VUE 感謝有人看我扯技術(shù),這篇文章主要介紹最近非常火的vue2前端框架的特點(diǎn)和vue2+vuex2+we...

    fish 評(píng)論0 收藏0
  • 無(wú)痛學(xué)會(huì)各種 2 Vue2+Vuex2+Webpack2 前后端同構(gòu)渲染

    摘要:它會(huì)檢測(cè)出最大靜態(tài)子樹(shù)就是不需要?jiǎng)討B(tài)性的子樹(shù)并且從渲染函數(shù)中萃取出來(lái)。這樣在每次重渲染的時(shí)候,它就會(huì)直接重用完全相同的同時(shí)跳過(guò)比對(duì)。需要注意的是,中的操作必須是同步的,不可以存在異步操作的情況。 新增:哈哈,最近又推出了 vue 的文章,在這里放個(gè)鏈接~手把手教你從零寫(xiě)一個(gè)簡(jiǎn)單的 VUE 感謝有人看我扯技術(shù),這篇文章主要介紹最近非常火的vue2前端框架的特點(diǎn)和vue2+vuex2+we...

    30e8336b8229 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<