首頁 web前端 js教程 在vue.js中如何呼叫vuex儲存介面數據

在vue.js中如何呼叫vuex儲存介面數據

Jun 20, 2018 pm 05:15 PM
vue vue.js vuejs vuex 教學 呼叫介面

這篇文章主要為大家介紹了關於在vue.js中引入vuex儲存介面資料及調用的相關資料,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。

前言

前幾天在慕課網上看到黃軼事老師的高仿餓了麼app視頻教程,在做接口設計的時候,我在想,這個介面能不能儲存下來全域呼叫呢?而不是走很多次接口,管理起來也很麻煩。

萬能的vue果然有這個功能,那就是vuex。

Vuex 是一個主要應用在中大型單頁應用的類似 Flux 的資料管理架構。它主要幫我們更好地組織程式碼,以及把應用程式內的狀態保持在可維護、可理解的狀態。

如果你不太理解 Vue.js 應用程式裡的狀態是什麼意思的話,你可以想像一下你先前寫的 Vue 元件裡面的 data 欄位。 Vuex 把狀態分成元件內部狀態和應用程式層級狀態:

  • 元件內部狀態:僅在一個元件內使用的狀態(data 欄位)

  • 應用層級狀態:多個元件共用的狀態

舉個例子:比如說有一個父元件,它有兩個子元件。這個父元件可以用 props 向子元件傳遞數據,這條數據通道很好理解。

具體的實作流程,當然是先安裝了

npm install vuex --save(推荐使用淘宝镜像cnpm,具体实施请自行百度)
登入後複製

然後建立一個store.js的檔案來管理資料

裡面的內容是這樣的

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

然後在main.js裡面引入這個js檔案

import store from './store.js'
登入後複製

然後就開始請求資料了,在mutations這個屬性裡寫上

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

在這裡寫這樣寫是為了讓actions調然後把數據存在state裡面的,官網說這個是異步存數據,我理解的這個異步就跟ajax的異步加載一個意思,當然同步就是mutations了。但是非同步的資料先寫在mutations裡面然後才能調用,所以就得在actions裡面這樣寫

actions:{
  newJson(obj){
   obj.commit('getJson');
  }
 },
登入後複製

然後把把state寫成這樣

state:{
  newslist:[]
 },
登入後複製

這麼寫的目的是為了不報錯,免得出現什麼找不到之類的錯誤。

上面的newJson跟obj是我自訂的,你可以隨便寫,getJson就是mutations裡面你要用的方法,方便等會分流用,這個getJson方法也可以加參數的,但參數必須是state,這個state就是上面state,不是自訂的。寫死。

接下來在你的子元件裡面就可以分流啦!

子元件裡的程式碼是這樣的:

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

在這裡我自訂了個goods來取代state.newslist.goods,因為我的資料是

{
"goods":[]
}
登入後複製

這種格式,我嫌長,就縮短了下。

然後在html裡面就可以直接呼叫了,這裡貼一小塊程式碼

<ul>
 <li v-for="(item,index) in goods" class="menu-item" :class="{&#39;current&#39;: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>
登入後複製

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

使用React如何防止出現重複渲染

#在vue中如何實作directive功能

在nodejs中基於mssql模組如何實作封裝

在Javascript中如何實作bind

##在js中如何實現二級聯動

以上是在vue.js中如何呼叫vuex儲存介面數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue.js vs.反應:特定於項目的考慮因素 vue.js vs.反應:特定於項目的考慮因素 Apr 09, 2025 am 12:01 AM

Vue.js適合中小型項目和快速迭代,React適用於大型複雜應用。 1)Vue.js易於上手,適用於團隊經驗不足或項目規模較小的情況。 2)React的生態系統更豐富,適合有高性能需求和復雜功能需求的項目。

vue怎麼給按鈕添加函數 vue怎麼給按鈕添加函數 Apr 08, 2025 am 08:51 AM

可以通過以下步驟為 Vue 按鈕添加函數:將 HTML 模板中的按鈕綁定到一個方法。在 Vue 實例中定義該方法並編寫函數邏輯。

vue多頁面開發是啥意思 vue多頁面開發是啥意思 Apr 07, 2025 pm 11:57 PM

Vue 多頁面開發是一種使用 Vue.js 框架構建應用程序的方法,其中應用程序被劃分為獨立的頁面:代碼維護性:將應用程序拆分為多個頁面可以使代碼更易於管理和維護。模塊化:每個頁面都可以作為獨立的模塊,便於重用和替換。路由簡單:頁面之間的導航可以通過簡單的路由配置來管理。 SEO 優化:每個頁面都有自己的 URL,這有助於搜索引擎優化。

vue遍歷怎麼用 vue遍歷怎麼用 Apr 07, 2025 pm 11:48 PM

Vue.js 遍歷數組和對像有三種常見方法:v-for 指令用於遍歷每個元素並渲染模板;v-bind 指令可與 v-for 一起使用,為每個元素動態設置屬性值;.map 方法可將數組元素轉換為新數組。

vue的div怎麼跳轉 vue的div怎麼跳轉 Apr 08, 2025 am 09:18 AM

Vue 中 div 元素跳轉的方法有兩種:使用 Vue Router,添加 router-link 組件。添加 @click 事件監聽器,調用 this.$router.push() 方法跳轉。

vue怎麼a標籤跳轉 vue怎麼a標籤跳轉 Apr 08, 2025 am 09:24 AM

實現 Vue 中 a 標籤跳轉的方法包括:HTML 模板中使用 a 標籤指定 href 屬性。使用 Vue 路由的 router-link 組件。使用 JavaScript 的 this.$router.push() 方法。可通過 query 參數傳遞參數,並在 router 選項中配置路由以進行動態跳轉。

React與Vue:Netflix使用哪個框架? React與Vue:Netflix使用哪個框架? Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled“ Gibbon” BuiltonReact,notReactorVuedIrectly.1)TeamSperience:selectBasedonFamiliarity.2)ProjectComplexity:vueforsimplerprojects:reactforforforproproject,reactforforforcompleplexones.3)cocatizationneedneeds:reactoffipicatizationneedneedneedneedneedneeds:reactoffersizationneedneedneedneedneeds:reactoffersizatization needefersmoreflexibleise.4)

vue組件傳值是什麼意思 vue組件傳值是什麼意思 Apr 07, 2025 pm 11:51 PM

Vue 組件傳值是一種在組件之間傳遞數據和信息的機制。它可以通過屬性 (props) 或事件 (events) 實現:屬性 (props):聲明要在組件中接收的數據,在父組件中傳遞數據。事件 (events):使用 $emit 方法觸發事件,並使用 v-on 指令在父組件中監聽。

See all articles