uniapp中使用pinia (针对于uniapp创建vue3项目,uniapp创建vue2项目此方法不可用)

这篇具有很好参考价值的文章主要介绍了uniapp中使用pinia (针对于uniapp创建vue3项目,uniapp创建vue2项目此方法不可用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1安装pinia

如果新建项目,先初始化一下

npm init -y
npm install pinia --save

2 新建pinia store目录,并创建相关文件

名字自己定我的是pinia-store,在目录下新建index.js和login.js,代码如下

index.js 这是需要被main.js引用的 如同与vue3项目中index.ts中引入的pinia

import { createPinia } from 'pinia'

const store = createPinia()

export default store

再建一个存储状态的文件(login.js)

export const useloginStore = defineStore({
  id: 'login', // id必填,且需要唯一
  state: () => {
    return {
      userName: uni.getStorageSync('userName') ? uni.getStorageSync('userName') : '未登录'
    }
  },
  // actions 用来修改 state
    actions: {
      login(userName) {
          uni.setStorageSync('userName', userName)
          this.userName = userName
      },
      logout() {
          uni.clearStorage()
          this.userName = '已退出登录'
      }
    }
})

4 main.js中的修改

import App from './App'

// #ifndef VUE3
import Vue from 'vue'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
    ...App,
})
app.$mount()
// #endif

// #ifdef VUE3
import {
    createSSRApp
} from 'vue'
// pinia
import pstore from './pinia-store'
export function createApp() {
    const app = createSSRApp(App)
    app.use(pstore)
    app.use(store)
    return {
        app
    }
}
// #endif

在vue组件中就可以操作pinia中存储的状态的和一系列操作了文章来源地址https://www.toymoban.com/news/detail-505594.html

<template>
    <view>
        <view>
            <button type="primary" @click="login('刘大根')">登录</button>
            <button type="default" @click="logout">退出</button>
        </view>
        <!-- <view>{{userName}}</view> -->
        <view>{{loginStore.userName}}</view>
    </view>
</template>

<script>
     
    引入存储pinia状态的文件
import { useloginStore } from '@/pinia-store/login'
const loginStore = useloginStore()

    export default {
        data() {
            return {
                loginStore:loginStore
            }
        },
        computed: {
            // ...mapState(['userName'])            
        },
        methods: {
            // ...mapActions(['login','logout'])
            login(userName){
                loginStore.login(userName)
            },
            logout(){
                loginStore.logout()
            }
            
        }
    }
</script>

到了这里,关于uniapp中使用pinia (针对于uniapp创建vue3项目,uniapp创建vue2项目此方法不可用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3项目中使用pinia

    前言: 官网地址 https://pinia.vuejs.org/zh/ 中文文档 https://pinia.web3doc.top/ pinia    作为Vue.js 状态管理库 类型安全、可扩展性以及模块化设计。 甚至让你忘记正在使用的是一个状态库。 优点:   优点 dev-tools 支持 跟踪动作、突变的时间线 Store 出现在使用它们的组件中 time travel

    2023年04月26日
    浏览(46)
  • 使用VS Code创建编写uniapp项目(vue3+ts 微信小程序)

    uni-create-view :用于快速创建 uni-app 页面 uni-helper uni-app :代码提示 uniapp 小程序扩展 :鼠标悬停查文档 1.在types属性中添加属性名 @types/wechat-miniprogram 和  @uni-helper/uni-app-types. 2.添加vueCompilerOptions选项 ①在VS Code中找到设置 ②在设置中搜索文件关联 ③添加这两个文件名,值为

    2024年04月27日
    浏览(71)
  • Vue2向Vue3过度Vue3状态管理工具Pinia

    Pinia 是 Vue 的专属的最新状态管理库 ,是 Vuex 状态管理工具的替代品 后面在实际开发项目的时候,Pinia可以在项目创建时自动添加,现在我们初次学习,从零开始: 使用 Vite 创建一个空的 Vue3项目 按照官方文档安装 pinia 到项目中 定义store 组件使用store Pinia中的 getters 直接使

    2024年02月11日
    浏览(48)
  • hbuilder创建基于vue2的uniapp小程序项目

    参考vant官网:https://vant-contrib.gitee.io/vant/v3/#/zh-CN/quickstart#an-zhuang官网 参考别人博客:https://www.yii666.com/blog/465379.html 1.1 hbuilder进去右上角点击文件–新建–项目 1.2 vue2项目如下图 2.1 2.2

    2024年02月17日
    浏览(56)
  • vue2(Vuex)、vue3(Pinia)、react(Redux)状态管理

    Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它使用集中式存储管理应用的所有组件的状态,以及规则保证状态只能按照规定的方式进行修改。 State(状态) :Vuex 使用单一状态树,即一个对象包含全部的应用层级状态。这个状态树对应着一个应用中的所有状态。 Gett

    2024年01月23日
    浏览(48)
  • 使用 Vite + Vue3 + Element-Plus + Pinia + Ts 搭建 Vue3 项目

    Vite 需要 Node.js 版本 14.18+,16+。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。 首先 npm 输入: Project name :项目名称 Select a framework :选择一个框架 Select a variant :选择 ts 或者 js 输入项目名称后选择 vue 选择

    2024年02月09日
    浏览(64)
  • uniapp使用addInterceptor路由拦截(vue2 OR vue3)

    说明 初始版本方法,可能因为能力原因存在不足,请见谅,有问题评论区~~ 主要通过 uni.addInterceptor api进行路由拦截 目前小程序上面对于uniapp提供的路由跳转方式可以实现拦截,自带的返回按钮,底部tabbar切换无法拦截他们的跳转,但是可以监听到to和from h5支持路由全部拦截

    2024年02月09日
    浏览(45)
  • Vue3+Vite+Pinia+Naive项目搭建之二:scss 的安装和使用

    前言 如果对 vue3 的语法不熟悉的,可以移步 Vue3.0 基础入门,快速入门。 github 开源库:Vue3-Vite-Pinia-Naive-Js gitee   开源库:Vue3-Vite-Pinia-Naive-Js 1. 安装依赖  2. 新增 src/assets/style/reset.scss 页面样式初始化 3. 新增 src/assets/style/common.scss 共用样式 4. 新增 src/assets/style/utils.scss 工

    2024年02月12日
    浏览(56)
  • HBuilder创建uniapp项目(Vue3、Vant Weapp)

    一、准备工作     1.下载HBuilder ——uni-app(https://uniapp.dcloud.io/)     2.下载微信开发者工具:         https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html 二、创建项目     1.在点击工具栏里的文件 - 新建 - 项目:     2.选择uni-app类型,输入工程名,选择模板,

    2023年04月08日
    浏览(51)
  • 使用vue3 + TS + Pinia + Vant4 + vite搭建商城H5项目框架

    本文主要将如何利用搭建一个初始化的商城H5项目框架。初始化阶段使用的技术栈有:vue3.2、vue-router、 TS 、 Pinia 、 Vant4、Less、vite                         node -v 检测是否有安装node.js,未安装请先去官网安装node.js         终端输入: npm init vite         自定

    2024年02月12日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包