Vuex利用state保存新闻数据实例

前端之家收集整理的这篇文章主要介绍了Vuex利用state保存新闻数据实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<p style="text-align: center">

这里写图片描述

回顾

以前我们在做这个新闻列表的时候,是一个写死的数据

支持业务解决"},{newsid:"103",pubtime:"2016-10-27",title:"大文件存储",desc:"背后的你不得不知的技术"},{newsid:"104",pubtime:"2016-10-26",title:"飞天进化",desc:"阿里巴巴技术委员会"},] } },}

然后在模板上循环:

今天我们来学习从服务器获取数据

news-list.vue:

获取数据 this.$http.get("http://localhost/news.PHP").then(function (res) { this.$store.state.newslist = res.body; },function (res) { // 请求失败处理 }) } } }

组件生命周期(创建)里请求服务器获取数据,然后保存到了state 里:

newslist 在实例化Vuex.Store 的时候定义,入口文件index.js里:

组件模板上就要这样循环了:

这里写图片描述

数据过滤

处理服务器返回来的数据,比如我们这里news.PHP 的返回的json数据:

代码如下:
排行榜","desc":"如何支持业务接入?选择什么存储引擎?",{"id":103,"title":"大文件存储","desc":"讲大型二进制文件存储,只包含那些文件的轻量级引用","isdeleted":true}]

我们要根据isdeleted 做数据过滤,不多说,先看代码

const vuex_store = new Vuex.Store({
state:{
user_name:"",mutations:{
showUserName(state){
alert(state.user_name);
}
},getters:{
getNews(state){
return state.newslist.filter(function (news) {
return !news.isdeleted;
})
}
}
})

getters 专门写了一个方法,做了数据过滤处理,保留isdeleted为false 的记录。

那么我们在组件模板上循环的时候也要修改一下了:

这里写图片描述

过滤之后,只有2条数据了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的Vue相关文章