uniApp:使用vue3+Vite4+pinia+sass技术栈构建
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
前言
使用uniApp的cli模式安装,可以使用vscode开发。不用再单独去下载HBuilderX.
开发流程
1.基础安装 vue3+ts+uniapp
npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project
pnpm install
备注:安装可能会报错,提示esbuild问题,根据提示在package.json指定版本,然后重新执行
pnpm install 或者 pnpm update
2.安装pinia
pnpm add pinia@2.0.36
备注:这里要指定版本,太高了编译会出错
在src目录创建store文件夹,创建user.ts
import { defineStore } from 'pinia'
export const useStore = defineStore('main', {
state() {
return {
userInfo: {
username:"username",
phone:"phone"
},
}
},
actions: {
setUserInfo(data) {
this.userInfo = data
}
}
})
修改main.ts,全局引入pinia
import { createSSRApp } from "vue";
import * as Pinia from 'pinia';
import App from "./App.vue";
export function createApp() {
const app = createSSRApp(App);
const store = Pinia.createPinia();
app.use(store);
return {
app,
Pinia
};
}
在页面使用pinia
<template>
<view class="content">
<image class="logo" src="/static/logo.png" />
<view class="text-area">
<text class="title">{{ title }}-{{ userInfo.userInfo.username }}</text>
</view>
</view>
</template>
<script setup lang="ts">
import { ref } from "vue"
import { useStore } from "@/store/user"
const userInfo = useStore()
const title = ref("Hello")
</script>
3.pinia数据持久化,安装pinia-plugin-unistorage
如果不安装持久化插件,页面刷新后pinia会重新加载,数据会丢失
pnpm add pinia-plugin-unistorage
修改mian.js
import { createSSRApp } from "vue";
import * as Pinia from 'pinia';
import { createUnistorage } from 'pinia-plugin-unistorage'
import App from "./App.vue";
export function createApp() {
const app = createSSRApp(App);
const store = Pinia.createPinia();
store.use(createUnistorage());//持久化
app.use(store);
return {
app,
Pinia,
};
}
修改/src/store/user.ts
import { defineStore } from 'pinia'
export const useStore = defineStore('main', {
state() {
return {
userInfo: {
username: "username",
phone: "phone"
},
}
},
unistorage: true,//新增,持久化
actions: {
setUserInfo(data: any) {
this.userInfo = data
}
}
})
4.安装sass
pnpm i sass -D
pnpm i sass-loader@10.1.1 -D
页面添加sass标识
<style lang="scss" scoped>
</style>
5.配置vue自动导入
安装unplugin-auto-import插件
pnpm add unplugin-auto-import -D
修改vite.config.js
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
import AutoImport from 'unplugin-auto-import/vite'
export default defineConfig({
plugins: [uni(),
AutoImport({
imports: ["vue"]
})],
});
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |