vue3+Ts使用pinia方式(vue-lic搭建项目)

 更新时间:2025年01月24日 09:31:04   作者:益达木咸醇  
文章介绍了如何在Vue 3项目中使用Pinia进行状态管理,主要内容包括安装Pinia、初始化、在main.ts中注册和使用,以及在.vue的setup中使用state,文章还提到getters和actions的使用可以参考官方文档,总结部分表达了作者希望得到大家支持的意愿

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();
	....
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于element中对el-input 自定义验证规则

    关于element中对el-input 自定义验证规则

    这篇文章主要介绍了关于element中对el-input 自定义验证规则,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 在Vue中使用echarts的方法

    在Vue中使用echarts的方法

    这篇文章主要介绍了Vue中使用echarts的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Vue中代码编辑器与实时预览功能

    Vue中代码编辑器与实时预览功能

    CodeMirror提供了强大的代码编辑功能,而Vue.js使得组件的创建和数据绑定变得非常简单,当用户编辑代码时,实时预览会根据代码的变化进行更新,从而为用户提供了一个交互式的编程环境,这篇文章主要介绍了Vue中如何进行代码编辑器与实时预览,需要的朋友可以参考下
    2023-10-10
  • uniapp和vue的区别详解

    uniapp和vue的区别详解

    这篇文章主要介绍了uniapp和vue的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10
  • 详解如何在Vue2中实现useDraggable

    详解如何在Vue2中实现useDraggable

    这篇文章主要为大家详细介绍了Vue2中实现useDraggable的相关知识,文中的示例代码简洁易懂,对我们深入了解vue有一定的帮助,需要的小伙伴可以参考下
    2023-12-12
  • Vue 自适应高度表格的实现方法

    Vue 自适应高度表格的实现方法

    这篇文章主要介绍了Vue 自适应高度表格的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • vue实现微信浏览器左上角返回按钮拦截功能

    vue实现微信浏览器左上角返回按钮拦截功能

    这篇文章主要介绍了vue实现微信浏览器左上角返回按钮拦截功能,本文通过实例代码相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • vue post application/x-www-form-urlencoded如何实现传参

    vue post application/x-www-form-urlencoded如何实现传参

    这篇文章主要介绍了vue post application/x-www-form-urlencoded如何实现传参问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • vue v-on:click传递动态参数的步骤

    vue v-on:click传递动态参数的步骤

    这篇文章主要介绍了vue v-on:click传递动态参数的步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • vue项目打包后打开页面空白解决办法

    vue项目打包后打开页面空白解决办法

    这篇文章主要介绍了vue项目打包后打开空白解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06

最新评论