当前位置: 首页 > news >正文

实用指南:Vue3.x —— Vuex 状态管理

        在这之前讲过了关于 Vuex 的数据状态管理内容,讲了关于 Vuex 中的五大核心属性:state、getter、mutations、actions、module,在 Vue2 转 Vue3,Vuex的使用会有哪些变化呢?下面来简单的了解:

main.js

        在项目中来去使用 Vuex,使用脚手架创建项目可以进行选择使用vuex,可以在项目创建后的main.js 文件中看到,在这之前也讲过 Vue2 和 Vue3 两个文件之间的对比,在这就不再赘述。

store/index.js

        在 store/index.js 文件下创建 store 对象( createStore ):

// store/index.js
import { createStore } from 'vuex'
export default createStore({state: {},getters: {},mutations: {},actions: {},modules: {}
})

mutations / actions

        下面来进行一个运用,在 onMounted 生命周期使用axios发起数据请求,请求回来的数据进行store状态管理 ( 注:安装axios和配置反向代理 );



<script>
// https://m.maizuo.com
// X-Client-Info: {"a":"3000","ch":"1002","v":"5.2.1","e":"16753207015161962279272449"}
// X-Host: mall.film-ticket.film.list
import axios from 'axios'
import { onMounted } from 'vue'
import { useStore } from 'vuex'
export default {setup () {const store = useStore()onMounted(() => {axios({url: 'https://m.maizuo.com/gateway?cityId=440300&pageNum=1&pageSize=10&type=1&k=7778789',method: 'GET',headers: {'X-Client-Info': '{"a":"3000","ch":"1002","v":"5.2.1","e":"16753207015161962279272449"}','X-Host': 'mall.film-ticket.film.list'}}).then(res => {// console.log(res)// commit 提交store.commit('getInfoList', res)})})}
}
</script>
// store/index.js
import { createStore } from 'vuex'
export default createStore({state: {InfoList: []},getters: {},mutations: {getInfoList (state, result) {state.InfoList = resultconsole.log(state.InfoList)}},actions: {},modules: {}
})

         在这之前在 Vue2 项目中使用的即是 this.$store.commit(...) 进行提交,之前讲到在 Vue3 这么使用会有 this 的指向问题,所以对于 Vue3 的复合式API也同样有着不同的访问方式,上述就是一个访问 Mutation 的操作了,而访问 actions 也同样使用 store.dispatch(...) 即可!

state

        访问 Mutations 和 Actions 的方式已经了解了,那么如何在页面当中去使用所管理的数据状态呢?即如何来去访问 state 中的数据状态;

        对于 state 的访问需要去创建 computed 引用以保留响应性。下面来调整一下代码:

{{ InfoList }}
<script> ... import { onMounted, computed } from 'vue' import { useStore } from 'vuex' setup(){const store = useStore()onMounted(()=>{ ... })return {InfoList: computed(() => store.state.InfoList)} } ...

        已让成功访问了 state 中的数据状态, 对于这块部分内容可以参考 Vuex 所提的官方文档进行阅读,这里附上链接:点击跳转 ,那么下面也提供一些关于本篇所设计到相关知识点的篇目,感兴趣的可以翻阅,再次感谢大家的支持!!!

http://www.jsqmd.com/news/290275/

相关文章:

  • 拾光筑梦 向光而行——至圣集团合作伙伴答谢会在昆圆满举办
  • 小学生的题:求桌子多高
  • 掌握技巧:彻底消除错误代码0x80004005带来的困扰
  • 3.3V驱动MOS方法——稳压二极管+NMOS
  • 【两阶段鲁棒微网】【不确定性】基于关键场景辨别算法的两阶段鲁棒微网优化调度附Matlab代码
  • ant -vue a-table去掉表头
  • 【裂纹检测】检测和标记图片中的裂缝附Matlab代码
  • Tulsimer树脂在锂电高盐锂液深度除杂中的技术实践与应用
  • 题解:AT_agc058_f [AGC058F] Authentic Tree DP
  • 别再把“数字化管理”当PPT了!18.3%的权重背后,藏着你的降本增效密码
  • nodejs基于vue框架的宠物猫商城售卖管理系_eq667
  • nodejs基于vue框架的家政服务系统的设计与实现_5o0if
  • nodejs基于vue网上订餐系统的设计与实现_i23b2
  • nodejs基于vue乡镇农村居民政务管理系统_93034
  • 低代码:设备管理数字化的故障快速响应密码
  • 如何启动Carte,如何使用Carte
  • Pentaho 和他的五位成员(五灵威力) kettle spoon pancarte kitchen (pdi的前生今世)
  • javafx程序启动cmd.exe调用其他软件或者脚本指令
  • 如何解决 Spoon 与 Carte 互联的 UTF-8 编码问题
  • spoon如何连接carte如何将.ktr任务或者.kjb任务提交个远程carte服务让,carte的服务端来执行 etl脚本的任务呢?
  • Pentaho Data Integration:Spoon与Carte的对比
  • mast3r-smf测试 - MKT
  • 备份 还原 系统 数据保护
  • 中小厂 AI 招聘隐藏要求:除了技术,这 2 点更关键
  • nodejs基于vue的教学质量评价管理系统的设计与实现 评教系统39j06
  • 二叉树递归实现
  • nodejs基于vue的教师科研项目申报信息管理系统的设计与实现_c7z6m
  • nodejs基于vue二手商品物品商城网站_s926p
  • nodejs基于vue基于MVC模式的考研论坛互动交流系统的私信设计与实现
  • nodejs基于vue技术人人美食菜谱分享点餐配送平台的设计与实现