这篇文章主要为大家详细介绍了Vuex利用state保存新闻数据实例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
【图片暂缺】
回顾
以前我们在做这个新闻列表的时候,是一个写死的数据
代码如下:
export default{
data(){
return{
newslist:[
{newsid:"101",pubtime:"2016-10-29",title:"探索之路",desc:"是手机团队的探索之路"},
{newsid:"102",pubtime:"2016-10-28",title:"系统之战",desc:"如何支持业务解决"},
{newsid:"103",pubtime:"2016-10-27",title:"大文件存储",desc:"背后的你不得不知的技术"},
{newsid:"104",pubtime:"2016-10-26",title:"飞天进化",desc:"阿里巴巴技术委员会"},
]
}
},
}
然后在模板上循环:
代码如下:
<div class="page-header" v-for="news in newslist">
今天我们来学习从服务器获取数据
news-list.vue:
代码如下:
export default{
created(){
if (this.$store.state.newslist.length == 0){
// 请求服务器获取数据
this.$http.get("http://localhost/news.php").then(function (res) {
this.$store.state.newslist = res.body;
},function (res) {
// 请求失败处理
})
}
}
}
组件生命周期(创建)里请求服务器获取数据,然后保存到了state 里:
代码如下:
this.$store.state.newslist = res.body;
newslist 在实例化Vuex.Store 的时候定义,入口文件index.js里:
代码如下:
state:{
user_name:"",
newslist:[]
},
组件模板上就要这样循环了:
代码如下:
v-for="news in this.$store.state.newslist"
【图片暂缺】
处理服务器返回来的数据,比如我们这里news.PHP 的返回的json数据:
代码如下:
我们要根据isdeleted 做数据过滤,不多说,先看代码:
代码如下:
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
专门写了一个方法,做了数据过滤处理,保留isdeleted为false 的记录。
那么我们在组件模板上循环的时候也要修改一下了:
代码如下:
v-for="news in this.$store.getters.getNews"
【图片暂缺】
过滤之后,只有2条数据了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持四海网。
本文来自:http://www.q1010.com/184/3348-0.html
注:关于Vuex利用state保存新闻数据实例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:vue.js
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。