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


Posted in Javascript onJune 28, 2017

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"

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

数据过滤

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

[{"id":101,"pubtime":"2016-10-29","title":"探索之路","desc":"是手机团队的探索之路","isdeleted":false},{"id":102,"pubtime":"2016-10-29","title":"排行榜","desc":"如何支持业务接入?选择什么存储引擎?","isdeleted":false},{"id":103,"pubtime":"2016-10-29","title":"大文件存储","desc":"讲大型二进制文件存储,只包含那些文件的轻量级引用","isdeleted":true}]

我们要根据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"

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 常见操作实现方式和常用函数方法总结
May 06 Javascript
IE下使用cloneNode注意事项分享
Nov 22 Javascript
实现动画效果核心方式的js代码
Sep 27 Javascript
浅析Cookie中的Path与domain
Dec 18 Javascript
js函数参数设置默认值的一种变通实现方法
May 26 Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 Javascript
Angular4学习笔记router的简单使用
Mar 30 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
Vue中Axios从远程/后台读取数据
Jan 21 Javascript
node爬取新型冠状病毒的疫情实时动态
Feb 06 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 Javascript
vue使用exif获取图片经纬度的示例代码
Dec 11 Vue.js
微信浏览器禁止页面下拉查看网址实例详解
Jun 28 #Javascript
基于EasyUI的基础之上实现树形功能菜单
Jun 28 #Javascript
webpack学习--webpack经典7分钟入门教程
Jun 28 #Javascript
BootStrap Table前台和后台分页对JSON格式的要求
Jun 28 #Javascript
vue2项目使用sass的示例代码
Jun 28 #Javascript
微信小程序之网络请求简单封装实例详解
Jun 28 #Javascript
详解webpack+angular2开发环境搭建
Jun 28 #Javascript
You might like
用PHP连mysql和oracle数据库性能比较
2006/10/09 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
理解 JavaScript 预解析
2009/10/25 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
Flask框架的学习指南之用户登录管理
2016/11/20 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
软件测试面试题
2014/01/05 面试题
大学生个人简历中的自我评价
2013/12/27 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
房屋出售授权委托书
2014/10/12 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
报名委托书
2015/01/29 职场文书
少先队中队工作总结
2015/08/14 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
python实现MD5进行文件去重的示例代码
2021/07/09 Python
MySQL中CURRENT_TIMESTAMP的使用方式
2021/11/27 MySQL