首页 > 其他分享 >Vue3| Pinia 的语法

Vue3| Pinia 的语法

时间:2023-10-14 17:14:49浏览次数:50  
标签:count const defineStore 语法 Pinia Vue3 import counterStore

Pinia 是 Vue 的最新 状态管理工具,是 Vuex 的替代品

Pinia 的优势:

1. 提供更简单的 API(去掉了 mutation)

2. 提供符合 组合式风格的 API(和 Vue3 新语法统一)

3. 去掉了 modules 的概念,每一个 store 都是一个独立的模块

4. 配合 TypeScript 更加友好,提供可靠的类型推断

 

Pinia 基本语法:

定义 store:

方法一、

import { defineStore } from 'pinia'

// 你可以对 `defineStore()` 的返回值进行任意命名。这个名字 ,也被用作 id ,是必须传入的, Pinia 将用它来连接 store 和 devtools

// defineStore() 的第一个参数是你的应用中 Store 的唯一 ID。第二个参数可接受两类值:Setup 函数或 Option 对象

export  const  useAlertsStore = defineStore ( 'alerts' ,  {

      // 其他配置...

})

 

 方法二、

import { defineStore } from 'pinia'   export const useChannelStore = defineStore('channel', () => {     })

eg:

import { defineStore } from 'pinia' import { ref } from 'vue'
export const useCounterStore = defineStore('counter', () => {     const count = ref(0)
    return{         count     } })  

其他组件使用 Pinia:

<script setup> import { useCounterStore } from '@/store/counter.js'   // 返回的是一个对象,所以 counterStore 是一个对象。counterStore.变量名或方法名  来使用。
const counterStore = useCounterStore() 
console.log(counterStore)  </script>
<template> <div>   {{ counterStore.count }}   // 无论<script>还是<template>都是 counterStore.变量名或方法名 </div> </template>    

Setup Store

也存在另一种定义 store 的可用语法。与 Vue 组合式 API 的 setup 函数 相似,我们可以传入一个函数,该函数定义了一些响应式属性和方法,并且返回一个带有我们想暴露出去的属性和方法的对象。


export const useCounterStore = defineStore('counter', () => {
  const count = ref(0)
  function increment() {
    count.value++
  }

  return { count, increment }
})

在 Setup Store 中:

  • ref() 就是 state 属性
  • computed() 就是 getters
  • function() 就是 actions

标签:count,const,defineStore,语法,Pinia,Vue3,import,counterStore
From: https://www.cnblogs.com/gagaya2/p/17764370.html

相关文章

  • docker入门加实战—Docker镜像和Dockerfile语法
    docker入门加实战—Docker镜像和Dockerfile语法镜像镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。镜像结构我们要从0部署一个Java应用,大概流程是这样:准备Linux运行环境(java项目并不需要完整的操作......
  • Vue3| 组合式 API——provide 和 inject
    作用和场景:顶层组件向任意的底层组件传递数据和方法,实现跨层组件通信 跨层传递普通数据步骤:1.顶层组件通过provide函数提供数据provide('key', 顶层组件中的数据) 2.底层组件通过inject函数获取数据const message=inject('key')   //'k......
  • Markdown基础语法
    Markdown基本语法教程来自Markdown官方教程,由小喾苦整理Markdown标题语法要创建标题,请在单词或短语前面添加井号(#)。#的数量代表了标题的级别。#一级标题##二级标题###三级标题####四级标题#####五级标题######六级标题一级标题二级标题三级标题......
  • Vue3| 模板引用、defineExpose宏函数
    模板引用的概念:通过ref标识获取真实的dom对象或者组件实例对象 使用:1.调用ref函数生成一个ref对象<script setup>import {ref} from 'vue'const h1Ref=ref(null)</script>2.通过ref标识绑定ref对象到标签<script setup>import {ref......
  • Vue3| 组合式 API 下的 子传父
    步骤:1.子组件内部通过emit方法触发事件①通过defineEmits编译器宏生成emit方法<script setup>const emit= defineEmits(['get-message'])  //get-message:可以触发的事件</script>②触发自定义事件,并传递参数<script setup>const emit= define......
  • Vue3| 组合式 API 下的父传子
    步骤:一、父给子传写死的值1.父组件中给子组件以添加属性的方式传值<script setup>import sonComVue from './son-com.vue'  //局部注册</script> <template><sonComVue message="黑马程序员"></sonComVue></template>2.子组件内部通过pro......
  • Vue3| 组合式API——computed 计算属性函数
    计算属性基本思想和Vue2的完全一致,组合式API下的计算属性只是修改了写法 核心步骤:1.导入computed函数<scriptsetup>import{computed}from'vue'</script>2.执行函数在回调参数中return基于响应式数据做计算的值,用变量接收<scriptsetup>import{com......
  • Vue3| 组合式API——reactive 和 ref 函数
    Vue中默认的数据并不是响应式的,如果我们希望数据是响应式的,则需要通过reactive或者ref进行处理。 reactive():作用:接收对象类型的数据作为参数传入并返回一个响应式对象reactive不能处理简单类型的数据 reactive使用步骤:1.在<scriptsetup>里,从vue包中导入......
  • Vue3| create-vue 脚手架工具
    create-vue是Vue官方新的脚手架工具,底层切换到了vite(下一代构建工具),为开发提供极速响应 使用 create-vue创建项目:1.前提环境条件:  已安装16.0或更高版本的Node.js(node-v)2.创建一个Vue应用:npminitvue@latest(这一指令将会安装并执行create-vue)启动项目:......
  • Markdown语法
    Markdown基本语法标题基本用法#一级标题##二级标题###三级标题####四级标题#####五级标题######六级标题段落创建段落使用空白一行或者多行文本进行分割Ireallylikestudy!​Yes,that'sright.错误做法:无需进行缩进Ireallylikestudy!​Yes,that'sright.......