前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【手写Vuex】-手撕Vuex-实现共享数据

【手写Vuex】-手撕Vuex-实现共享数据

原创
作者头像
程序员NEO
修改于 2023-11-16 23:59:19
修改于 2023-11-16 23:59:19
28400
代码可运行
举报
运行总次数:0
代码可运行

前言

经过上一篇章介绍,完成了添加全局 $store,接下来就是实现共享数据的功能。

在 Vuex 中,共享数据是通过 state 来实现的,所以我们需要在 Nuex.js 文件中实现 state 的功能。

在 Vuex 中,state 是一个对象,这个对象中存放的就是我们的共享数据,所以我们需要在 Nuex.js 文件中定义一个 state 对象。

代码实现

在 store 目录中,我们给 Vue 注册 Nuex 时创建了 store 对象,并且定义了共享属性,在根组件中,使用了 store,那么我们在 install 方法中就可以通过 Vue 实例访问到 store 对象注册全局的 $store。

基于这些信息,我们就可以在 Nuex.js 文件中实现 state 的功能了。

只需要在 Store 构造函数中将创建Store时需要共享的数据添加到Store上面,这样将来我们就能通过this.$store拿到这个Store,既然能拿到这个Store,我们就可以通过 .state 拿到需要共享的属性。

最终的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Store {
    constructor(options) {
        this.state = options.state;
    }
}

将访问共享数据的代码放开,打开浏览器查看效果:

总结

到这里我们就完成了共享数据的功能,实现共享数据主要是通过 state 属性来实现的,state 属性是在 Store 构造函数中定义的,所以我们需要在 Store 构造函数中将创建 Store 时将需要共享的数据添加到 Store 上面,这样将来我们就能通过 this.$store 拿到这个 Store,既然能拿到这个 Store,我们就可以通过 .state 拿到需要共享的属性。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【手写Vuex】-手撕Vuex-实现getters方法
经上一篇章介绍,完成了实现共享数据的功能,实现方式是在 Store 构造函数中将创建 Store 时将需要共享的数据添加到 Store 上面,这样将来我们就能通过 this.$store 拿到这个 Store,既然能拿到这个 Store,我们就可以通过 .state 拿到需要共享的属性。
程序员NEO
2023/11/14
1940
【手写Vuex】-手撕Vuex-实现getters方法
【手写Vuex】-手撕Vuex-实现mutations方法
经过上一篇章介绍,完成了实现 getters 的功能,那么接下来本篇将会实现 mutations 的功能。
程序员NEO
2023/11/15
2900
【手写Vuex】-手撕Vuex-实现mutations方法
【手写Vuex】-手撕Vuex-安装模块方法
经过上一篇文章的介绍,我们实现了将模块安装到 store 中,那么本章我们就来介绍一下怎么安装模块当中的方法也就是 actions、mutations、getters。
程序员NEO
2023/11/20
2330
【手写Vuex】-手撕Vuex-安装模块方法
【手写Vuex】-手撕Vuex-模块化共享数据
好,经过上一篇的介绍,实现了 Vuex 当中的 actions 方法,接下来我们来实现 Vuex 当中的模块化共享数据(modules)。
程序员NEO
2023/11/17
1890
【手写Vuex】-手撕Vuex-模块化共享数据
【手写Vuex】-手撕Vuex-添加全局$store
经过上一篇的介绍,了解到了 Vuex 的实现本质就是一个插件,所以要做的事情就是实现这个插件的代码编写即可。
程序员NEO
2023/11/12
5050
【手写Vuex】-手撕Vuex-添加全局$store
【手写Vuex】-手撕Vuex-实现actions方法
本篇我先介绍一下 actions 的作用,然后再介绍一下实现的思路,最后再实现代码。
程序员NEO
2023/11/16
1930
【手写Vuex】-手撕Vuex-实现actions方法
【手写Vuex】-手撕Vuex-提取模块信息
在上一篇【手撕Vuex-模块化共享数据】文章中,已经了解了模块化,与共享数据的注意点。
程序员NEO
2023/11/18
2060
【手写Vuex】-手撕Vuex-提取模块信息
手撸vuex和vue-router
把这个store返回出去,那就写完了,核心原理可以说是异常简单。 就用官方文档的案例验证下这个duex有多靠谱:
一粒小麦
2019/07/18
5370
手撸vuex和vue-router
【手写-Vuex】-手撕Vuex-Vuex实现原理分析
本章节主要围绕着手撕 Vuex,那么在手撕之前,先来回顾一下 Vuex 的基本使用。
程序员NEO
2023/11/11
3020
【手写-Vuex】-手撕Vuex-Vuex实现原理分析
Vuex 基础用法
Vuex 是专为 Vue.js 开发的状态管理模式,采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态可预测的方式发生变化
Cellinlab
2023/05/17
2590
Vuex 基础用法
Vuex 2.0 源码分析
通常,在项目不是很复杂的时候,我们会利用全局事件总线 (global event bus)解决,但是随着复杂度的提升,这些代码将变的难以维护。因此,我们需要一种更加好用的解决方案,于是,Vuex 诞生了。
前端迷
2019/08/06
2K0
Vuex 2.0 源码分析
浅析Vuex及相关面试题答案
自从学习了Vue框架,其中必不可少的会用到vuex这个核心插件,而且在做项目的时候,基本都会使用,可能你会使用vuex状态管理,但是对vuex原理存在着或多或少的的疑惑或不解,这篇文章就针对vuex原理进行研究,希望能帮助到大家,如果有不准确的地方,大家多多指教。。。
前端开发博客
2020/11/04
1.1K0
浅析Vuex及相关面试题答案
【手写Vue】-手撕Vue-实现计算属性
经过上一篇的学习, 完成了将数据代理到了 Nue 的实例上方,这个我们已经撕完了。接下来要实现的是计算属性,计算属性的实现原理是通过 Object.defineProperty() 来实现的,我们先来看看计算属性的使用。
程序员NEO
2023/11/10
3430
【手写Vue】-手撕Vue-实现计算属性
[译] 从头为 Vue.js 3 实现 Vuex
原文:https://medium.com/@lachlanmiller_52885/vue-3s-alpha-has-been-out-for-a-while-now-but-no-vue-3-vuex-yet-c73b26389978
江米小枣
2020/06/15
1.3K0
[译] 从头为 Vue.js 3 实现 Vuex
聊聊Vuex原理
在调用 Vuex 的时候会找其 install 方法,并把组件实例传递到 install 方法的参数中。
yyds2026
2022/10/10
3850
10-Vuex设计Vue3项目的数据流
首先,我们需要掌握前端的数据怎么管理,现代Web应用都是由三大件构成,分别是:组件、数据和路由。
JavaEdge
2024/07/29
1770
10-Vuex设计Vue3项目的数据流
Vuex框架原理与源码分析
Vuex是一个专为Vue服务,用于管理页面数据状态、提供统一数据操作的生态系统。它集中于MVC模式中的Model层,规定所有的数据操作必须通过 action - mutation - state change 的流程来进行,再结合Vue的数据视图双向绑定特性来实现页面的展示更新。统一的页面状态管理以及操作处理,可以让复杂的组件交互变得简单清晰,同时可在调试模式下进行时光机般的倒退前进操作,查看数据改变过程,使code debug更加方便。 最近在开发的项目中用到了Vuex来管理整体页面状态,遇到了很多问题。
美团技术团队
2018/03/12
3.1K0
Vuex框架原理与源码分析
学习 Vue 3 全家桶 - vuex
现代 Web 应用都是由三大件构成,分别是:组件、数据和路由。在一些数据组件之间需要共享的时候,应该如何实现?
Cellinlab
2023/05/17
3510
学习 Vue 3 全家桶 - vuex
编写简单 vuex 的思路
Vuex 什么是Vuex Vuex 是专门为Vue.js设计的状态管理库 Vuex 采用集中式的方式存储需要共享的状态 Vuex 的作用是进行状态管理,解决复杂组件通信,数据共享 Vuex 集成到了 devtools中,提供了time-travel时光旅行历史回滚功能 什么情况下使用Vuex 非必要的情况不要使用 Vuex 大型的单页应用程序 多个视图依赖于同一状态 来自不同视图的行为需要变更同一状态 Vuex 核心概念: Store: 每一个应用仅有一个Store Store是一个容器包含着应用的大部分
公众号---人生代码
2021/05/08
7430
编写简单 vuex 的思路
学习 vuex 源码整体架构,打造属于自己的状态管理库
导读 文章比较详细的介绍了vuex、vue源码调试方法和 Vuex 原理。并且详细介绍了 Vuex.use 安装和 new Vuex.Store 初始化、Vuex.Store 的全部API(如dispatch、commit等)的实现和辅助函数 mapState、mapGetters、 mapActions、mapMutations createNamespacedHelpers。
若川
2020/03/19
1.8K0
相关推荐
【手写Vuex】-手撕Vuex-实现getters方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验