后端小白的VUE入门笔记, 进阶篇(三)

简介: 后端小白的VUE入门笔记, 进阶篇(三)

Vuex#


官方的解释: vuex是专门为Vue.js应用程序开发的状态管理模式,它采用集中式的储存应用中所有组件的状态,并以相应的规则保证状态以一种可预期的方式发生变化

说白了: 当我们划分组件之后,每一个组件都有自己的属性,但是不同的组件的数据是不能共享的,于是我们可以使用从父组件往子组件传播数据的模式, 而且完全不相干的两个组件可能需要对方data里的数据,又怎么传递呢? vuex 就应对 迎战这个问题

vuex就是一个单独存储的区域,用于存放公共的属性


安装命令:#


npm install --save vuex



创建vuex的四个组件对象,如上图


vuex的组件对象一: state.js#


状态对象,存放一系列的状态,其实就是把子组件中data里面的字段赋复制过来


state.js文件
export default {
  arr: []
}


vuex的组件对象二: actions.js#


超级重要的组件, 在这个组件中我们可以提交异步事件, 最常用的就是用户直接通过$store.dispatch('action中的方法名'), action会触发 mutation的调用, 间接更新状态


action.js
// add方法的方法第一个参数是不变的{commit}, 其实他就是 $store 对象
// 通过这个commit方法,  把数据包装成对象传递给 mutations
// 第二个参数的可选的,可以是调用者传递进来的参数,也可以是state对象
export default {
  add({commit},item){
    // 提交mutation请求
     commit(ADD_TODO,{item}); // 把数据包装成对象传递给 mutations
  },


vuex的组件对象三: mutations.js#


真正的去执行action传进来,更新state中数据的操作


mutations.js
export default {
add(state,{item}){ 
   state.arr.unshift(item);
} 
}


vuex的组件对象四: getters.js#


包含了所有的基于state的 get计算属性, 这一点也很好用,他是一种双向的数据绑定


getters.js 
export default {
  // 计算属性
  totalCount (state) {
    return state.arr.length
  },
}


把四个组件拼装成store对象#

  1. 在src下创建store文件夹,在改文件夹下创建store.js
  2. 导入Vue , Vuex
  3. 声明Vue使用Vuex
  4. 将上面的四个组件注册进来store.js
    state: 状态对象,存放的是需要共享数据的字段
    actions: 包含多个事件回调函数的对象
    mutations: 包含真正去更新state中字段的函数
    getter: 计算属性的方法
  5. 对外暴露匿名store对象
  6. 将store配置进main.js vue的入口js中


编码实现: store.js


store.js
import Vue from 'vue'
import Vuex from  'vuex'
import state from './state'
import actions from './actions'
import mutations from  './mutations'
import getters from './getter2'
Vue.use(Vuex)
// 对外暴露你匿名 store对象
export  default new Vuex.Store({
  state,
  actions,
  mutations,
  getters
})
把store对象,注册进main.js


更全面的数据处理流程图#



获取state中的值#


做好了上面的配置,在任何地方都能用下面的方式获取出store里面的数据


this.$store.state.属性


使用vuex,改变状态值#


添加上前缀,再使用


this.$store.commit('matations中的方法名','可选的参数')
// 注意哦, action中是可以提交异步函数的
this.$store.dispach('action中的方法名','可选的参数')


也可以像下面这样,先进行映射就可以不再添加任何前缀,直接使用他们


// 从vuex中引入映射
import {mapState,mapGetters,mapActions} from 'vuex'
export default {
    computed:{
        ...mapState(['state中的属性值'])
        ...mapGetters(['getters.js中的方法名'])
    },
    methods:{
        ...mapActions(['actions.js中的方法名'])
    }
}


相关文章
|
1月前
|
缓存 架构师 数据库
后端开发的艺术:从入门到精通的旅程####
本文旨在探索后端开发的本质与魅力,通过一段段深入浅出的故事,串联起后端技术的精髓。不同于传统的技术总结,这里我们将以一位普通开发者的成长轨迹为线索,展现从初识编程到成为后端架构师的心路历程。每个阶段都伴随着挑战、学习与突破,最终揭示了技术背后的人文关怀与创新精神。 ####
|
1月前
|
JavaScript 前端开发 开发者
Vue v-for 进阶指南:in 与 of 的区别及应用场景 | 笔记
Vue.js 中的 v-for 是强大的遍历指令,但其中的 in 和 of 关键字往往被开发者忽视。尽管它们的用法相似,但适用的场景和数据结构却各有不同。本文将详细探讨 v-for 中 in 和 of 的区别、适用场景以及在实际开发中的最佳使用时机。通过理解它们的差异,你将能够编写更加高效、简洁的 Vue.js 代码,灵活应对各种数据结构的遍历需求。
87 6
|
2月前
|
JavaScript 前端开发 小程序
一小时入门Vue.js前端开发
本文是作者关于Vue.js前端开发的快速入门教程,包括结果展示、参考链接、注意事项以及常见问题的解决方法。文章提供了Vue.js的基础使用介绍,如何安装和使用cnpm,以及如何解决命令行中遇到的一些常见问题。
一小时入门Vue.js前端开发
|
1月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
1月前
|
JavaScript 前端开发 API
vue获取图片的blob传给django后端
vue获取图片的blob传给django后端
37 4
|
1月前
|
JavaScript API 开发者
十分钟 带你强势入门 vue3
十分钟 带你强势入门 vue3
63 1
|
1月前
|
JavaScript 索引
Vue 3 数组变更详解:哪些操作会修改原数组?| 笔记
在处理数组时,了解哪些操作会修改原数组,哪些操作不会修改原数组,对高效编写 Vue 应用程序至关重要。本文将详细介绍 Vue 3 中的常见数组操作,并按照是否会修改原数组进行分类说明。
130 2
|
22天前
|
监控 API 持续交付
后端开发中的微服务架构:从入门到精通
【10月更文挑战第26天】 在当今的软件开发领域,微服务架构已经成为了众多企业和开发者的首选。本文将深入探讨微服务架构的核心概念、优势以及实施过程中可能遇到的挑战。我们将从基础开始,逐步深入了解如何构建、部署和管理微服务。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的建议。
36 0
|
1月前
|
JavaScript 前端开发
vue3教程,如何手动获取后端数据(入门到精通3,新人必学篇)
本文提供了一个Vue 3教程,讲解了如何使用axios库手动从后端获取数据,包括安装axios、配置后端访问地址、编写路由地址、发起HTTP请求以及在组件中读取和打印响应数据的步骤。
339 0
vue3教程,如何手动获取后端数据(入门到精通3,新人必学篇)
|
1月前
|
JavaScript
vue3完整教程从入门到精通(新人必学2,搭建项目)
本文介绍了如何在Vue 3项目中安装并验证Element Plus UI框架,包括使用npm安装Element Plus、在main.js中引入并使用该框架,以及在App.vue中添加一个按钮组件来测试Element Plus是否成功安装。
65 0
vue3完整教程从入门到精通(新人必学2,搭建项目)

热门文章

最新文章

下一篇
无影云桌面