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

news/2024/10/21 5:45:05/

作者:前端小王hs

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

环境:使用vscode进行开发

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

为什么选择vscode?有更好的TS支持
学习TS的好处?减少维护代码的压力、鸿蒙ArkTS是基于TS的、提高代码水平拿高薪等…

Vue3版本Uniapp基础配置

    • 关于插件
    • 关于安装
    • 关于TS
    • 关于注释
    • 关于组件
    • 关于Pinia

关于插件

推荐安装的插件:
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建议读者收藏此文,方便后续开发直接复制常规配置项

{"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格式,如下面两个图所示:
首选项
修改为jsonc

关于组件

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

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

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

// 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,代码如下:

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

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

export const useUserInfo = defineStore('userinfor', {state: () => {},actions: {},
}, {// 持久化persist: {storage: {getItem(key) {return uni.getStorageSync(key)},setItem(key, value) {uni.setStorageSync(key, value)},},},
})

http://www.ppmy.cn/news/1434897.html

相关文章

嵌入式开发中模板方法模式实现

模板方法模式 模板方法模式(Template Method Pattern)是一种行为设计模式,它在父类中定义了一个算法的框架,允许子类在不改变结构的情况下重写某些步骤。这种模式体现了“封装不变部分,扩展可变部分”的原则&#xff…

精益人效,实践为先|第四届狮山人力资源论坛圆满举办

4月19日 ,在苏州日航酒店,由中国苏州人力资源服务产业园、苏州高新区人力资源服务产业园指导,盖雅工场、盖雅学苑和盖雅人效研究院主办的 「精益人效 实践为先——第四届狮山人力资源论坛」圆满结束。 700余位企业管理者与人力资源从业者&am…

hsql数据库(HyperSQL )(简单了解一下)

文章目录 一、HyperSQL (HSQLDB)1、HSQLDB是什么2、安装事务提一嘴特点看官网Datagrip连接HSQLDBMaven地址使用场景 参考文章 一、HyperSQL (HSQLDB) 1、HSQLDB是什么 HSQLDB (Hyper SQL Database)是一个用Java编写的关系数据库管…

架构师系列-MYSQL调优(七)- 索引单表优化案例

索引单表优化案例 1. 建表 创建表 插入数据 下面是一张用户通讯表的表结构信息,这张表来源于真实企业的实际项目中,有接近500万条数据. CREATE TABLE user_contacts (id INT(11) NOT NULL AUTO_INCREMENT,user_id INT(11) DEFAULT NULL COMMENT 用户标识,mobile VARCHAR(50…

设计模式- 适配器模式(Adapter Pattern)结构|原理|优缺点|场景|示例

设计模式(分类) 设计模式(六大原则) 创建型(5种) 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型(7种) 适配器…

ffmpeg支持MP3编码的方法

目录 现象 解决办法 如果有编译包没有链接上的情况 现象 解决办法 在ffmpeg安装包目录下 ,通过./configure --list-encoders 和 ./configure --list-decoders 命令可以看到,ffmpeg只支持mp3解码,但是不支持mp3编码。 上网查寻后发现&…

JVM支持的可配置参数查看和分类

JVM参数大致可以分为三类: 标注指令:-开头。 这些是所有的HotSpot都支持的参数。可以用java-help 打印出来。 非标准指令: -X开头。 这些指令通常是跟特定的HotSpot版本对应的。可以用java -X打印出来。 不稳定参数: -XX 开头。 这一类参数是跟特定HotSpot版本对应的&#x…