1、创建src/store/index.js----仓库所在地----暴露store
2、main.js入口文件处引入store,挂载到Vue根实例中
3、创建store/movie.js-----电影页面对应的状态管理模块
export default {
  state: {
   
  },
  getters: {
    
  },
  actions: {
 
  },
  mutations: {
 
  }
}
4、定义电影页面关联的初始状态
export default {
  state: {
       movielist: []
  },
  getters: {
    
  },
  actions: {
 
  },
  mutations: {
 
  }
}
5、定义异步操作action和改变状态mutation
export default {
  state: {
    movielist: []
  },
  getters: {
    
  },
  actions: {
    getMovielist ({commit}) {
   
    }
  },
  mutations: {
    changeMovielist (state, data) {
      state.movielist = data
    }
  }
}
6、实现异步操作中的数据请求-----src/api/movie.js
import axios from 'axios'
 
export default {
  getMovielist (cb) {
          // .then(({data}) => {cb(data)})
          .then((res) => {cb(res.data)})
          .catch((err) => {console.log(err)})
  }
}
7、实现store/movie.js中的action的后续操作-----提交mutation改变数据源
import movieapi from '@/api/movie.js'
export default {
  state: {
    movielist: []
  },
  getters: {
    
  },
  actions: {
   // getMovielist ({commit}) {
   //   movieapi.getMovielist((data) => {commit('changeMovielist', data)})
  //  },
 getMovielist (context) {
      movieapi.getMovielist((data) => {context.commit('changeMovielist', data)})
    }
  },
  mutations: {
    changeMovielist (state, data) {
      state.movielist = data
    }
  }
}
 
8、组件movie组件的js中,添加一个选项computed,用来接收store中的数据----使用mapState辅助函数
import {mapState} from 'vuex'
export default {
  computed: { //你store/movie中定义的初始状态是什么,key值就是什么,中间{}中的store/index.js中的modules中的key值
    ...mapState({
      movielist: ({movie}) => movie.movielist
    })
  }
}
 
9、提交action---组件mounted函数中
import {mapState} from 'vuex'
export default {
  computed: { //你store/movie中定义的初始状态是什么,key值就是什么,中间{}中的store/index.js中的modules中的key值
    ...mapState({
      movielist: ({movie}) => movie.movielist
    })
  },
  mounted () {
    this.$store.dispatch('getMovielist')
  }
}
10、组件的模板中可以直接使用movielist渲染数据
<ul>
      <li v-for='item in movielist' :key='item.id'>
        {{item.title}}
      </li>
    </ul>
11、分页功能
casts组件中添加了一个按钮,模拟下一页
<button @click="getData()">下一页</button>
在其js中添加
methods: {
    getData () { //下一页
      this.$store.dispatch('getCastsPagingList',{skipNum:2,limitNum:5})
    }
  },
store/casts.js
actions: {
    getCastsList (context) {
      castsapi.getCastsList((data) => {context.commit('changeCastslist', data)})
    },
    getCastsPagingList (context, option){
      castsapi.getCastsPagingList(option, (data) => {context.commit('changeCastsPagingList', data)})
    }
  },
  mutations: {
    changeCastslist (state, data) {
      state.castslist = data
    },
    changeCastsPagingList (state, data) {
      state.castslist = [...state.castslist, ...data]
    }
  }
}
api/casts.js
import axios from 'axios'
 
export default {
  getCastsList (cb) {
          .then(({data}) => {cb(data)})
          .catch((err) => {console.log(err)})
  },
  getCastsPagingList ({limitNum, skipNum}, cb) {
    console.log(limitNum)
    console.log(skipNum)
      axios.get('http://localhost:3000/api/castspaging?limitNum='+ limitNum+'&skipNum='+skipNum)
                  .then(({data}) => {cb(data)})
                  .catch((err) => {console.log(err)})
  }
}
 
 
 
 
 
 
 
 

vuex简单使用的更多相关文章

  1. 浅谈vuex使用方法(vuex简单实用方法)

    Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vu ...

  2. vuex - 简单使用步骤梳理,轻松掌握、附源码

    -----------------------往期----------------------------- vuex - 学习日记 vuex - 辅助函数学习 vuex - 常用命令学习及用法整理 ...

  3. vue - vue + vue-router + vuex 简单项目

    简单的,我的首页,我的笔记项目 vue + vue-router + vuex View + VM(ViewModel) + Model (webpack) vue init webpack lint ...

  4. vuex简单示例

    一.vuex是什么,解决了什么问题? 官方解释是:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生 ...

  5. (转)Vuex简单入门

    今天试了一下Vuex,感觉跟Redux的实现思想类似.再此,简单地总结一下. 什么是Vuex 在Vue中,多组件的开发给我们带来了很多的方便,但同时当项目规模变大的时候,多个组件间的数据通信和状态管理 ...

  6. 转一篇关于vuex简单理解的文章

    学习vuex半天摸不着头脑无意间发现了这篇文章 对vuex做了一个简单的阐述比较有助于我的理解 现在分享出来希望能给一些朋友一点帮助  这个是原文地址 http://www.ituring.com.c ...

  7. Vue + Vuex 简单使用

    我们要实现的很简单,就是点击+1的count加一,点击-1的时候count-1 一.mutation 在vue 中,只有mutation 才能改变state.  mutation 类似事件,每一个mu ...

  8. Vue状态管理Vuex简单使用

    状态管理保存在store\index.js中,简单说明如下 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export def ...

  9. 使用vuex简单的实现系统中的状态管理

    最近项目中用到了vue,其中状态的集中管理使用到了vuex,因此就学习vuex做一个简单的记录.vuex的官方网址如下: https://vuex.vuejs.org/zh-cn/  vuex 当我们 ...

随机推荐

  1. springboot+dubbo+mybatis多模块项目invalid boundexception

    invalid boundexception的原因大抵是因为mybatis扫描不到mapper映射文件(xml),无法将mapper接口类(java)中的接口与mapper映射器绑定起来.这可能是因为 ...

  2. ExpandableListView解析JSON数据

    效果图:                                       说明:刚开始使用这个控件我花费了3天的时间,但是一直都没有达到预期的效果,要么就是直接全部不显示,要么就是数据累加 ...

  3. Polar Code(1)关于Polar Code

    Polar Codes于2008年由土耳其毕尔肯大学Erdal Arikan教授首次提出,Polar Codes提出后各通信巨头都进行了研究.2016年11月18日(美国时间2016年11月17日), ...

  4. 【转】linux服务器性能查看

    转载自https://blog.csdn.net/achenyuan/article/details/78974729 1.1 cpu性能查看 1.查看物理cpu个数: cat /proc/cpuin ...

  5. 51单片机学习笔记(郭天祥版)(9)——IIC、EEPROM

    IIC是两根线,单总线,只有一根数据线,发送数据和读取收据都是一根线,像我们之前学的AD.DA都是许多线,许多线的话,这样做系统可以少浪费资源,少浪费控制IO口的资源,这种并行的处理速度快.所以线越多 ...

  6. redis缓存雪崩,缓存穿透,缓存击穿的解决方法

    一.缓存雪崩 缓存雪崩表示在某一时间段,缓存集中失效,导致请求全部走数据库,有可能搞垮数据库,使整个服务瘫痪. 使缓存集中失效的原因: 1.redis服务器挂掉了. 2.对缓存数据设置了相同的过期时间 ...

  7. 使用JFlex生成词法分析器 1:安装配置

    环境:Windows 10 STEP 1: 下载 JFlex 文件,我选择的是 jflex-1.7.0.zip.下载完成后解压到想安装的位置. 文件结构如下(假设解压目录为 C:\): C:\jfle ...

  8. [二分答案][NOIP2015]跳石头

    跳石头 题目描述 一年一度的“跳石头”比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩石(不含起 ...

  9. HttpServletRequest字符集问题

    post中文处理 1post在spring里的设置web.xml文件 <!-- 字符处理 UTF8 --> <filter> <filter-name>encodi ...

  10. IAR FOR AVR 仿真过程中出现全局变量值不断随意变化的问题

    本文记录使用IAR FOR AVR 使用过程中出现的问题,确保自己以后能够有史可查,也分享给遇到同样问题的朋友. 版本信息:IAR Assembler for AVR  5.40.0 (5.40.0. ...