您好,登錄后才能下訂單哦!
回顧
以前我們?cè)谧鲞@個(gè)新聞列表的時(shí)候,是一個(gè)寫死的數(shù)據(jù)
export default{ data(){ return{ newslist:[ {newsid:"101",pubtime:"2016-10-29",title:"探索之路",desc:"是手機(jī)團(tuán)隊(duì)的探索之路"}, {newsid:"102",pubtime:"2016-10-28",title:"系統(tǒng)之戰(zhàn)",desc:"如何支持業(yè)務(wù)解決"}, {newsid:"103",pubtime:"2016-10-27",title:"大文件存儲(chǔ)",desc:"背后的你不得不知的技術(shù)"}, {newsid:"104",pubtime:"2016-10-26",title:"飛天進(jìn)化",desc:"阿里巴巴技術(shù)委員會(huì)"}, ] } }, }
然后在模板上循環(huán):
<div class="page-header" v-for="news in newslist">
今天我們來學(xué)習(xí)從服務(wù)器獲取數(shù)據(jù)
news-list.vue:
export default{ created(){ if (this.$store.state.newslist.length == 0){ // 請(qǐng)求服務(wù)器獲取數(shù)據(jù) this.$http.get("http://localhost/news.php").then(function (res) { this.$store.state.newslist = res.body; },function (res) { // 請(qǐng)求失敗處理 }) } } }
組件生命周期(創(chuàng)建)里請(qǐng)求服務(wù)器獲取數(shù)據(jù),然后保存到了state 里:
this.$store.state.newslist = res.body;
newslist 在實(shí)例化Vuex.Store 的時(shí)候定義,入口文件index.js里:
state:{ user_name:"", newslist:[] },
組件模板上就要這樣循環(huán)了:
v-for="news in this.$store.state.newslist"
數(shù)據(jù)過濾
處理服務(wù)器返回來的數(shù)據(jù),比如我們這里news.PHP 的返回的json數(shù)據(jù):
我們要根據(jù)isdeleted 做數(shù)據(jù)過濾,不多說,先看代碼:
import Vuex from 'vuex'; Vue.use(Vuex); const vuex_store = new Vuex.Store({ state:{ user_name:"", newslist:[] }, mutations:{ showUserName(state){ alert(state.user_name); } }, getters:{ getNews(state){ return state.newslist.filter(function (news) { return !news.isdeleted; }) } } })
getters
專門寫了一個(gè)方法,做了數(shù)據(jù)過濾處理,保留isdeleted為false 的記錄。
那么我們?cè)诮M件模板上循環(huán)的時(shí)候也要修改一下了:
v-for="news in this.$store.getters.getNews"
過濾之后,只有2條數(shù)據(jù)了
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。