最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的詳細(xì)流程

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:23:54
文檔

vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的詳細(xì)流程

vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的詳細(xì)流程:前言 前幾天在慕課網(wǎng)上看到黃軼老師的高仿餓了么app視頻教程,在做接口設(shè)計(jì)的時(shí)候,我在想,這個(gè)接口能不能儲(chǔ)存下來(lái)全局調(diào)用呢?而不是走很多次接口,管理起來(lái)也麻煩。 萬(wàn)能的vue果然有這個(gè)功能,那就是vuex。 Vuex 是一個(gè)主要應(yīng)用在中大型單頁(yè)應(yīng)用的類(lèi)似于
推薦度:
導(dǎo)讀vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的詳細(xì)流程:前言 前幾天在慕課網(wǎng)上看到黃軼老師的高仿餓了么app視頻教程,在做接口設(shè)計(jì)的時(shí)候,我在想,這個(gè)接口能不能儲(chǔ)存下來(lái)全局調(diào)用呢?而不是走很多次接口,管理起來(lái)也麻煩。 萬(wàn)能的vue果然有這個(gè)功能,那就是vuex。 Vuex 是一個(gè)主要應(yīng)用在中大型單頁(yè)應(yīng)用的類(lèi)似于

前言

前幾天在慕課網(wǎng)上看到黃軼老師的高仿餓了么app視頻教程,在做接口設(shè)計(jì)的時(shí)候,我在想,這個(gè)接口能不能儲(chǔ)存下來(lái)全局調(diào)用呢?而不是走很多次接口,管理起來(lái)也麻煩。

萬(wàn)能的vue果然有這個(gè)功能,那就是vuex。

Vuex 是一個(gè)主要應(yīng)用在中大型單頁(yè)應(yīng)用的類(lèi)似于 Flux 的數(shù)據(jù)管理架構(gòu)。它主要幫我們更好地組織代碼,以及把應(yīng)用內(nèi)的的狀態(tài)保持在可維護(hù)、可理解的狀態(tài)。

如果你不太理解 Vue.js 應(yīng)用里的狀態(tài)是什么意思的話,你可以想象一下你此前寫(xiě)的 Vue 組件里面的 data 字段。Vuex 把狀態(tài)分成組件內(nèi)部狀態(tài)和應(yīng)用級(jí)別狀態(tài):

  • 組件內(nèi)部狀態(tài):僅在一個(gè)組件內(nèi)使用的狀態(tài)(data 字段)
  • 應(yīng)用級(jí)別狀態(tài):多個(gè)組件共用的狀態(tài)
  • 舉個(gè)例子:比如說(shuō)有一個(gè)父組件,它有兩個(gè)子組件。這個(gè)父組件可以用 props 向子組件傳遞數(shù)據(jù),這條數(shù)據(jù)通道很好理解。

    具體的實(shí)現(xiàn)流程,當(dāng)然是先安裝了

    npm install vuex --save(推薦使用淘寶鏡像cnpm,具體實(shí)施請(qǐng)自行百度)

    然后建立個(gè)store.js的文件來(lái)管理數(shù)據(jù)


    里面的內(nèi)容是這樣的

    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
    export default new Vuex.Store({
     state:{
     },
     actions:{
     },
     mutations:{
     }
    })

    然后在main.js里面引入這個(gè)js文件

    import store from './store.js'

    然后就開(kāi)始請(qǐng)求數(shù)據(jù)了,在mutations這個(gè)屬性里寫(xiě)上

    mutations:{
     getJson(){
     Vue.http.get('../data.json',{
     },{
     headers:{},
     emulateJSON:true
     }).then(response=>{
     this.state.newslist=response.data;
     },response=>{
     
     })
     }
     }

    在這里寫(xiě)這樣寫(xiě)是為了讓actions調(diào)然后把數(shù)據(jù)存在state里面的,官網(wǎng)說(shuō)這個(gè)是異步存數(shù)據(jù),我理解的這個(gè)異步就跟ajax的異步加載一個(gè)意思,當(dāng)然同步就是mutations了。但是異步的數(shù)據(jù)先寫(xiě)在mutations里面然后才能調(diào)用,所以就得在actions里面這樣寫(xiě)

    actions:{
     newJson(obj){
     obj.commit('getJson');
     }
     },

    然后把把state寫(xiě)成這樣

    state:{
     newslist:[]
     },

    這么寫(xiě)的目的是為了不報(bào)錯(cuò),免得出現(xiàn)什么找不到之類(lèi)的錯(cuò)誤。

    上面的newJson跟obj是我自定義的,你可以隨便寫(xiě),getJson就是mutations里面你要用的方法,方便等會(huì)分流用,這個(gè)getJson方法也可以加參數(shù)的,但參數(shù)必須是state,這個(gè)state就是上面state,不是自定義的。寫(xiě)死。

    接下來(lái)在你的子組件里面就可以分流啦!

    子組件里的代碼是這樣的:

    import {mapState} from 'vuex';
    computed:{
     ...mapState({
     goods:state=>state.newslist.goods,
     classMap:state=>state.classMap
     })
     }

    在這里我自定義了個(gè)goods來(lái)代替state.newslist.goods,因?yàn)槲业臄?shù)據(jù)是

    {
    "goods":[]
    }

    這種格式,我嫌長(zhǎng),就縮短了下。

    然后在html里面就可以直接調(diào)用了,這里貼一小塊代碼

    <ul>
     <li v-for="(item,index) in goods" class="menu-item" :class="{'current':currentIndex===index}" @click="selectMenu(index,$event)">
     <span class="text border-1px">
     <span class="icon" v-show="item.type>0">
     </span>
     {{item.name}}
     </span>
     </li>
    </ul>

    基本上流程就是這樣

    總結(jié)

    聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的詳細(xì)流程

    vue.js中引入vuex儲(chǔ)存接口數(shù)據(jù)及調(diào)用的詳細(xì)流程:前言 前幾天在慕課網(wǎng)上看到黃軼老師的高仿餓了么app視頻教程,在做接口設(shè)計(jì)的時(shí)候,我在想,這個(gè)接口能不能儲(chǔ)存下來(lái)全局調(diào)用呢?而不是走很多次接口,管理起來(lái)也麻煩。 萬(wàn)能的vue果然有這個(gè)功能,那就是vuex。 Vuex 是一個(gè)主要應(yīng)用在中大型單頁(yè)應(yīng)用的類(lèi)似于
    推薦度:
    標(biāo)簽: VUE 引入 vuex
    • 熱門(mén)焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門(mén)推薦

    專題
    Top