Vue3+TS版本Uniapp:项目前置操作

作者:前端小王hs

阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主

环境:使用vscode进行开发

如果一开始是使用的HbuilderX ,请看hbuilderX创建的uniapp项目转移到vscode

为什么选择vscode ?有更好的TS支持

学习TS的好处?减少维护代码的压力、鸿蒙ArkTS是基于TS的、提高代码水平拿高薪等...

Vue3版本Uniapp基础配置

关于插件

推荐安装的插件:

关于这些插件的作用(按上图顺序):校验关键文件、提供代码片段、快速创建组件、代码提示、注释高亮、鼠标悬停查看代码信息

关于安装

如何快捷打开控制器?ctrl+`

安装命令:npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project

注意,上述安装命令为支持TS的版本,关于安装的更多内容,可在官网查看,这里不再赘述

安装完了不要忘了pnpm install安装依赖

关于TS

配置TS类型校验

复制代码
pnpm i -D @types/wechat-miniprogram @uni-helper/uni-app-types

根目录下的tsconfig.json建议读者收藏此文,方便后续开发直接复制常规配置项

json 复制代码
{
  "extends": "@vue/tsconfig/tsconfig.json",
  "compilerOptions": {
    "allowJs": true,
    "sourceMap": true,
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    },
    "lib": ["esnext", "dom"],
    "types": [
      "@dcloudio/types",
      "miniprogram-api-typings",
      "@uni-helper/uni-app-types",
    ]
  },
  "vueCompilerOptions": {
    "nativeTags": ["block", "component", "template", "slot"]
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

关于注释

值得注意的是,核心目录src下的package.jsonmanifest.jsonvscode没有得到很好的支持,会出现下划线的注释问题,如下图所示:

所以需要在vscode的顶部文件选项的👉首选项👉设置中的工作区 搜索文件关联 ,并设置上述两个文件为jsonc格式,如下面两个图所示:

关于组件

如果使用官方的ui组件库即uni-ui组件库pnpm i @dcloudio/uni-ui,可以使用easycom快速引入组件,而无需使用import...from语法,代码如下:

json 复制代码
// pages.json
{
"easycom": {
	"autoscan": true,
	"custom": {
		"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
	}
},

对于组件的TS支持,则在配置项中新增代码如下:

json 复制代码
// tsconfig.json
    "types": [
      "@dcloudio/types",
      "miniprogram-api-typings",
      "@uni-helper/uni-app-types",
      "@uni-helper/uni-ui-types"
    ]

关于Pinia

我们开发使用的是Vue3版本的uniapp,所以使用的状态管理器是Pinia,关于Vue3的项目,可在B站搜索UP主名字👉前端小王hs学习2023最新的Vue3全家桶+MySQL+Express全栈视频

在常规的项目中,我们要持久化Pinia会使用pinia-plugin-persistedstate,代码如下:

js 复制代码
export const useUserInfo = defineStore('userinfor', {
	state: () => {},
	actions: {},
}, {
	// 持久化
	persist: true
})

而在uniapp的小程序中,则需修改为:

js 复制代码
export const useUserInfo = defineStore('userinfor', {
	state: () => {},
	actions: {},
}, {
	// 持久化
	persist: {
		storage: {
			getItem(key) {
            return uni.getStorageSync(key)
			},
        	setItem(key, value) {
         	uni.setStorageSync(key, value)
        	},
		},
	},
})
相关推荐
2501_915106326 小时前
App HTTPS 抓包 工程化排查与工具组合实战
网络协议·ios·小程序·https·uni-app·php·iphone
dcloud_jibinbin7 小时前
【uniapp】小程序体积优化,分包异步化
前端·vue.js·webpack·性能优化·微信小程序·uni-app
2501_916008897 小时前
金融类 App 加密加固方法,多工具组合的工程化实践(金融级别/IPA 加固/无源码落地/Ipa Guard + 流水线)
android·ios·金融·小程序·uni-app·iphone·webview
2501_915921438 小时前
Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
android·macos·ios·小程序·uni-app·自动化·iphone
游戏开发爱好者810 小时前
iOS 上架要求全解析,App Store 审核标准、开发者准备事项与开心上架(Appuploader)跨平台免 Mac 实战指南
android·macos·ios·小程序·uni-app·iphone·webview
00后程序员张10 小时前
混淆 iOS 类名与变量名的实战指南,多工具组合把混淆做成工程能力(混淆 iOS 类名变量名/IPA 成品混淆Ipa/Guard CLI 实操)
android·ios·小程序·https·uni-app·iphone·webview
2501_9160074714 小时前
iOS文件管理工具深度剖析,从系统沙盒到跨平台文件操作的多工具协同实践
android·macos·ios·小程序·uni-app·cocoa·iphone
shykevin14 小时前
uni-app x开发商城系统,扩展组件uni-ui实现底部商品导航
uni-app
QuantumLeap丶14 小时前
《uni-app跨平台开发完全指南》- 05 - 基础组件使用
vue.js·微信小程序·uni-app
2501_9159184116 小时前
Flutter 加固方案对比与实战,多工具组合的跨平台安全体系(Flutter App 加固/IPA 成品混淆/Ipa Guard CLI/自动化安全流程)
安全·flutter·ios·小程序·uni-app·自动化·iphone