从 版本开始,pinia 同时支持 Vue 2 和 Vue 3!这意味着,v2 版本的所有更新,将会让 Vue 2 和 Vue 3 的用户都受益。如果你使用的是 Vue 3,这对你来说没有任何改变,因为你已经在使用 rc 版本,你可以查看发布日志来了解所有更新的详细解释。如果你使用的不是 Vue 3,那这个指南是为你准备的!
让我们来看看你需要对你的代码做出的所有修改。首先,为了解所有弃用,确保你已经在运行最新的 0.x 版本:
如果你正在使用 ESLint,可以考虑使用这个插件,来查找所有废弃的用法。否则,你得手动检查。这些都是被废弃且已经删除了的 API:
- 变成
- 在订阅中, 变成
- 更名为 (Vue 2 的 Pinia 插件)
- 不再接受 boolean 作为第二个参数,而是传递一个带有 的对象。
- Pinia 插件不再直接接收 store 的 。使用 代替。
删除下面这些后,你可以用下面命令升级到 V2 版了:
然后开始更新你的代码。
添加于 2.0.0-rc.0
用 取代 类型的全部用法。这是新的通用 store 类型,应该可以接受任何类型的 store。如果你在写函数时使用 类型而不想传递其泛型 (例如),你可以使用 ,因为没有泛型的 类型会创建一个空的 store 类型:
如果你在用 TypeScript 写插件并扩展了 类型来添加自定义选项,你应该把它改名为 。这个类型将同时适用于 setup 和 option store。
类型 被重新命名为 。
注意这个更新只能在升级到最新的没有弃用的 Pinia 版本后生效。
由于 pinia 目前依赖于 ,你使用的 的版本必须是 及以上:
如果你使用的是 webpack 4 (Vue CLI 使用的是 webpack 4),你可能会遇到这样的错误:
这是构建文件为支持 Node.js 中的原生 ESM 模块进行的现代化适配。为更好地支持 Node,文件现在使用的扩展名是 和 。要解决这个问题,你有两种可用的方法:
- 如果你使用 Vue CLI 4.x,升级你的依赖。具体修复步骤如下。
- 如果你不可能升级,请将下面的代码添加到你的 中:
- 如果你手动处理 webpack,你将必须让它知道如何处理 文件:
Pinia v2 不再劫持 Vue Devtools v5,它需要的是 Vue Devtools v6。可以在 Vue Devtools 文档中找到该扩展 beta 版本的下载链接。
如果你正在使用 Nuxt,pinia 现在有了专门的 Nuxt 软件包🎉。请用以下方法安装它:
还要确保更新你的 包。
如果你使用 TypeScript,还要调整你的 和 :
Nuxt 专属章节也值得一读。
组合式函数是利用 Vue 组合式 API 来封装和复用有状态逻辑的函数。无论你是自己写,还是使用外部库,或者两者都有,你都可以在 pinia store 中充分发挥组合式函数的力量。
当定义一个 option store 时,你可以在 属性中调用组合式函数:
请记住,你只能返回可写的状态 (例如,一个 ) 。下面是一些可用的组合式函数的示例:
- useLocalStorage
- useAsyncState
下面是一些不可在 option store 中使用的组合式函数 (但可在 setup store 中使用) :
- useMediaControls: exposes functions
- useMemoryInfo: exposes readonly data
- useEyeDropper: exposes readonly data and functions
另外,当定义一个 setup store 时,你几乎可以使用任何组合式函数,因为每一个属性都会被辨别为 state 、action 或者 getter:
当处理服务端渲染时,你有一些需要额外注意的内容,以便在 store 中使用组合式函数。
在 Option Store 中,你需要定义一个 函数。当 store 在客户端 (浏览器) 上被实例化的过程中,创建 store 时有一个可用的初始状态时,这个函数就会被调用。我们需要定义这个函数的原因是,在这种情况下, 是不会被调用的。
在 Setup Store 中,对于任何不应该从初始状态中接收的 state 属性 你都需要使用一个名为 的辅助函数。与 option store 不同,setup store 不能直接跳过调用 ,所以我们用 标记那些不能被激活的属性。请注意,这只适用于可写的响应式属性:
到此这篇dist反编译 vue(vue编译后可以反编译)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qdvuejs/64727.html