文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Vue项目中是否使用store原理深究

2022-11-13 19:24

关注

前言

关于 Vue 项目中是否使用 store 的一些思考?

为什么会有这个问题呢?

最近做项目的时候,使用 pinia 作为状态管理库,翻看 pinia 文档的时候,发现 pinia 创建 store 多了一种 setup store 的方式

setup store

const useStore = defineStore('store', () => {
  const status = ref(false);
  const setStatus = () => {
    status.value = !status.value;
  };
  const number = computed(() => Number(status.value));
  return {
    status,
    setStatus,
    number,
  };
});

setup storevue响应式 api 结合在一起使用,相较于原先的 选项式 api 统一了语法,更符合开发者习惯

使用 store

const store = useStore()
console.log(store.status); // false
console.log(store.number); // 0
store.setStatus();
console.log(store.status); // true
console.log(store.number); // 1

这样的写法很棒!

但是我们为什么要多次一举使用 store,为何不在其他文件直接使用 组合式 api 定义数据和修改数据的方法,非要包裹一层创建 store 的过程

const status = ref(false);
const setStatus = () => {
  status.value = !status.value;
};
export { status, setStatus };

在其他的组件中直接将 statussetStatus 引入,这样写法比 setup store 还要简单

那使用 store 的意义是什么呢 ?

两种方式的区别

为什么要引入 store,大多数情况都是为了 全局状态管理,方便了 跨组件通信,但是直接使用 组合式 api 也能完成这个任务。

这两种方式有什么区别呢?

如果引入其他文件中定义的 简单数据类型不允许修改

// 第一个文件
export let num = 0;
// 第二个文件
import { num } from '.';
num++; // error

import 为当前模块引入的变量都会被视作为 常量

setup store 相比 组合式 api 拥有更强大的地方:

const useStore = defineStore('store', () => {
  const num1 = ref(0);
  const num2 = 0; // 非响应式
  return {
    num1,
    num2,
  };
});
const store = useStore();
store.num1++;
store.num2++; // 响应式
console.log(store.num1); // 1
console.log(store.num2); // 1

基本数据类型和响应式数据都可以更改,基本数据可以修改,也可以引起视图的变化,在 store 外部调用是响应式的,但在 store 内部不是响应式的,但是不会被 pinia Devtools 工具检测到

这是两种方式在使用体验上面的区别

store 究竟带来了什么?

在 Pinia 官网 中有这么一段话

在很多时候,其实是体验不到 pinia 带来的好处,所以可以完全使用 组合式 api 作为全局状态管理的工具

以上就是Vue项目中是否使用store原理深究的详细内容,更多关于Vue项目store使用原理的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯