vue3+ts使用pinia(vue-lic搭建项目)
1、安装
npm install pinia -s
2、pinia初始化
//在store目录下新建多个.ts文件(为了便于模块化和更好维护) //index.ts import { manage } from './backstagemange'; export { manage }; //manage.ts import { definestore } from 'pinia'; export const manage = definestore('managestore',{ state: () => { //状态 return { person: { name: 'pinia', age: 0, say: 'woc' }, reason: '我爱前端', } }, getters: { //计算属性 }, actions: { //异步操作 }, });
3、在main.ts中注册使用
import { createapp } from 'vue'; import { createpinia } from 'pinia'; import app from './app.vue'; const pinia = createpinia(); const app = createapp(app); app.use(pinia); app.mount('#app');
4、在.vue的setup中使用
这里我只展示state的使用,getters和actions的使用请转弯到官方网址查阅。
<script lang="ts"> import { definecomponent } from 'vue'; import { manage } from '@/store'; export default definecomponent({ setup() { const store = manage(); ... //store.person就可以拿到person这个对象 //也可以直接把store直接return出去在template中使用 //更改store状态 //第一种方式,更灵活可以做一些其他的逻辑 store.$patch((state: any) => { ... state.person['name'] = '益达'; }); //第二种方式,只能直接更改某个状态 store.$patch({ reason: '我更爱前端了!', //这里也可以写一个表达式,比如前面有一个变量赋值给reason,hobby ? hobby : '我更爱前端了!' }) } }) </script>
5、在ts文件中使用状态
import { manage } from '../store'; export function updateaside() { const store = manage(); .... }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论