Pinia源码浅析
# Pinia源码浅析
# vue-demi
Pinia
中只用到了vue-demi一种库,vue-demi是一个可以同时支持vue2和vue3的通用的vue库的开发工具,通过它无需担心用户安装的vue版本,只需要在代码中引入vue-demi,就可以自动适配。
# createPinia
createPinia
函数是Pinia
的核心函数,它返回一个Pinia
实例,该实例包含install
方法,用于安装Pinia
插件,以及use
方法,用于注册插件,比如数据持久化插件piniaPluginPersistedstate
vueDemi.markRaw
将对象标记为不可被代理,防止被代理对象被修改
export function createPinia() {
const pinia =vueDemi.markRaw({
install:(app)=>{/*...*/},
use:(plugin)=>{/*...*/},
_p,
_a:null
_e:scope,
_s:new Map(),
state,
}
return pinia
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# defineStore
defineStore
定义store,接受一个唯一的id字符串和store配置项,其中定义了useStore
编辑 (opens new window)
上次更新: 2024/05/06, 11:10:46