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 相关文章推荐
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
Aug 14 Javascript
杨氏矩阵查找的JS代码
Mar 21 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
JavaScript初学者建议:不要去管浏览器兼容
Feb 04 Javascript
jQuery操作cookie
Aug 08 Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 Javascript
ES6中参数的默认值语法介绍
May 03 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
Sep 26 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
Jun 29 Javascript
微信小程序列表中item左滑删除功能
Nov 07 Javascript
微信小程序实现复选框效果
Dec 28 Javascript
nuxt静态部署打包相对路径操作
Nov 06 Javascript
微信浏览器禁止页面下拉查看网址实例详解
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
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
PDO::rollBack讲解
2019/01/29 PHP
基于jquery的表头固定的若干方法
2011/01/27 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
动态的创建一个元素createElement及删除一个元素
2014/01/24 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
js实现窗口全屏示例详解
2019/09/17 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
对于Python中线程问题的简单讲解
2015/04/03 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
python3将变量输入的简单实例
2020/08/19 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
pymysql模块使用简介与示例
2020/11/17 Python
python 元组和列表的区别
2020/12/30 Python
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
中学生班主任评语
2014/01/30 职场文书
出差报告范文
2014/11/06 职场文书
python glom模块的使用简介
2021/04/13 Python
Python基本知识点总结
2022/04/07 Python