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 相关文章推荐
短信提示使用 特效
Jan 19 Javascript
任意位置显示html菜单
Feb 01 Javascript
GreyBox技术总结(转)
Nov 23 Javascript
解析window.open的使用方法总结
Jun 19 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
Jun 24 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
Aug 08 Javascript
更靠谱的H5横竖屏检测方法(js代码)
Sep 13 Javascript
自制微信公众号一键排版工具
Sep 22 Javascript
bootstrap中使用google prettify让代码高亮的方法
Oct 21 Javascript
谈谈vue中mixin的一点理解
Dec 12 Javascript
web前端vue之CSS过渡效果示例
Jan 10 Javascript
vue.extend实现alert模态框弹窗组件
Apr 28 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
在PHP中执行系统外部命令
2006/10/09 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
python 合并文件的具体实例
2013/08/08 Python
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python中IPYTHON入门实例
2015/05/11 Python
python多线程之事件Event的使用详解
2018/04/27 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
外企测试工程师面试题
2015/02/01 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
优秀老师事迹材料
2014/02/05 职场文书
法律进企业活动方案
2014/03/04 职场文书
暑期培训随笔感言
2014/03/10 职场文书
继承公证书样本
2014/04/04 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js