基于uniapp+vue3+ts小程序项目实战之项目初始化

news2025/1/21 5:48:31

🚀 作者 :“二当家-小D”

🚀 博主简介:⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8年开发架构经验,精通java,擅长分布式高并发架构,自动化压力测试,微服务容器化k8s等

🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬

🍅文末获取源码联系 配套笔记打包🍅目录

一、小滴课堂微信小程序项目初始化

1.1小滴课堂微信小程序项目需求分析

首页:

分类:

学习:

我的:

二、项目初始化创建

2.1项目初始化创建

npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project

2.2原子化css框架-unocss配置

unocss.config.ts文件配置
// unocss.config.ts

import presetWeapp from 'unocss-preset-weapp'
import { defineConfig } from 'unocss'
import { transformerAttributify, transformerClass } from 'unocss-preset-weapp/transformer'

export default defineConfig({
  presets: [
    presetWeapp(), // 工具预设
  ],
  transformers: [
    transformerAttributify(), // 支持属性化模式
    transformerClass(), // 转换转义类名,支持class写法
  ],
  shortcuts: [
    { center: 'flex items-center justify-center' },
    { around: 'flex items-center justify-around' },
    { between: 'flex items-center justify-between' },
  ]
})

main.ts文件配置

// main.ts
import 'uno.css'
vite.config.ts文件配置
// vite.config.ts
import { defineConfig } from 'vite'
import Unocss from 'unocss/vite'

export default defineConfig({
  plugins: [Unocss()]
})

2.3响应式语法糖和自动引入插件配置

开启响应式语法糖

// vite.config.ts
import { defineConfig } from 'vite'
import Unocss from 'unocss/vite'

export default defineConfig({
  plugins: [
    uni({
    vueOptions: {
      reactivityTransform: true
    }
  })]
})

ts识别语法糖写法

"types": ["vue/ref-macros"]

响应式语法糖和自动引入插件配置自动引入插件配置

// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'

export default defineConfig({
  plugins: [
  AutoImport({
    dts: 'src/typings/auto-imports.d.ts',
    imports: ['vue', 'uni-app', 'pinia'],
    dirs: ['src/composables']
  })]
})

2.3uni-app框架中使用Pinia状态管理的配置

安装插件

pnpm i pinia@2.0.30 pinia-plugin-persistedstate@3.0.2 -S

引入Pinia

// main.ts
import { createPinia } from 'pinia';
import { createSSRApp } from 'vue';
import { createPersistedState } from 'pinia-plugin-persistedstate';
import App from './App.vue';

import 'uno.css';

// 引入Pinia和持久缓存的设置
const pinia = createPinia().use(
  createPersistedState({
    storage: {
      getItem(key: string) {
        return uni.getStorageSync(key);
      },
      setItem(key: string, value: string) {
        uni.setStorageSync(key, value);
      },
    },
  })
);

export function createApp() {
  const app = createSSRApp(App).use(pinia);
  return {
    app,
  };
}

2.4uni-app框架中使用Pinia状态管理的使用

src根目录新建composables目录(用于放置Pinia配置文件)

测试Pinia配置成功与否

// user.ts
export const useUser = defineStore(
  'user',
  () => {
    let isLogin = $ref<boolean>(false);
    return $$({
      isLogin,
    });
  },
  {
    persist: true,
  }
);

配置TS对响应式语法糖的支持

"types": ["@dcloudio/types", "vue/ref-macros"]

vue3官网Reactivity Transform文档地址

https://vuejs.org/guide/extras/reactivity-transform.html#refs-vs-reactive-variables

返回函数范围内使用 $$ 包裹保持响应性

结束语

今天的内容着重介绍了uniapp+vue3+ts的微信小程序项目的初始化过程以及相关配置。从需求分析开始,到项目初始化创建、CSS框架配置、响应式语法糖和自动引入插件配置,再到在uni-app框架中使用Pinia状态管理的配置和使用,每一步都详细说明了具体的操作和配置方法。

今天的文章就到这里了,还有更多内容下次继续。

资料获取📚
完整代码和笔记已经准备好,如果有问题,可以在评论区留言讨论💬
原创不易,别忘了点赞👍+收藏⭐哦!
点击下方链接即可获取完整资料压缩包🎁,快来领取吧!↓↓↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1673920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

混淆矩阵实战

2.实战 1.加载数据 #加载数据 import pandas as pd import numpy as np data pd.read_csv(data_class_raw.csv) data.head()2.data.loc得到样本属性&#xff0c;并进行样本数据可视化 #可视化数据 %matplotlib inline from matplotlib import pyplot as plt#define X and y…

记一次ms17-010(永恒之蓝)漏洞复现

1.漏洞介绍: 永恒之蓝&#xff08;ms17-010&#xff09;爆发于2017年4月14日晚&#xff0c;是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限&#xff0c;以此来控制被入侵的计算机。甚至于2017年5月12日&#xff0c; 不法分子通过改造“永恒之蓝”制作了wannacry勒索病…

解锁!智能代码助手 Baidu Comate 硬核能力

近日&#xff0c;在全球软件开发大会上暨智能软件开发生态展上&#xff0c;来自 Baidu Comate 的资深研发工程师分享了精彩的专题演讲&#xff0c;小编整理了演讲精华&#xff0c;和大家一起玩转“大模型软件研发”。 今天带来——吴玮琦《智能代码助手 Baidu Comate 的核心能…

【MySQL数据库】初步认识数据库,实现基本操作

在信息爆炸的今天&#xff0c;数据无处不在&#xff0c;它们构成了互联网世界的基石。但数据本身若未经有效组织和管理&#xff0c;就如同散落在沙滩上的珍珠&#xff0c;难以发挥其真正的价值。这时&#xff0c;“数据库”这一概念便如同一根线&#xff0c;将这些珍珠串联起来…

黑马新出的SpringBoot3项目后端总结

基础篇-00_SpringBoot3_Vue3导学课程_哔哩哔哩_bilibili 这个是视频链接 这个新课程里面用了一些企业里会用的注解例如Validated这种&#xff0c;业务流程清晰明了简单上手&#xff0c;算是可以了解最基本的Springboot开发流程&#xff0c;方便上手和快速入门 主要是下面这几…

差异基因散点图绘制教程

差异基因散点图绘制教程 本期教程 小杜的生信笔记&#xff0c;自2021年11月开始做的知识分享&#xff0c;主要内容是R语言绘图教程、转录组上游分析、转录组下游分析等内容。凡事在社群同学&#xff0c;可免费获得自2021年11月份至今全部教程&#xff0c;教程配备事例数据和相…

Python---NumPy万字总结【此篇文章内容难度较大,线性代数模块】(3)

NumPy的应用&#xff08;3&#xff09; 向量 向量&#xff08;vector&#xff09;也叫矢量&#xff0c;是一个同时具有大小和方向&#xff0c;且满足平行四边形法则的几何对象。与向量相对的概念叫标量或数量&#xff0c;标量只有大小&#xff0c;绝大多数情况下没有方向。我们…

【JAVA】数组的定义与使用

前一篇我们讲述了方法的使用和递归&#xff0c;这一讲 我们来叙述一下数组相关知识点。最近更新较快&#xff0c;大家紧跟步伐哦~~ 1. 数组的基本概念 1.1 为什么要使用数组 假设现在要存5个学生的javaSE考试成绩&#xff0c;并对其进行输出&#xff0c;按照之前掌握的知识点&…

Gooxi发布最新AI服务器:加速生成式AI落地 更懂AI

近日&#xff0c;Gooxi发布最新训推一体AI服务器&#xff0c;以大容量内存和灵活的高速互连选项满足各种AI应用场景&#xff0c;最大可能支持扩展插槽&#xff0c;从而大幅提升智能算力性能&#xff0c;以最优的性能和成本为企业的模型训练推理落地应用提供更好的通用算力。 AI…

AICloud 分论坛 07-AI原生数据库与RAG【文档管理】

https://github.com/infiniflow/infinityhttps://infiniflow.org/视频观看&#xff1a;https://www.bilibili.com/video/BV16m411y7xW/?spm_id_from333.999.0.0&vd_sourceae7b192be069682aabc96350ba419fc5 简介 为LLM应用程序构建的AI原生数据库&#xff0c;提供令人难…

单元测试之TestNG知识点总结及代码示例

TestNG 是一个测试框架&#xff0c;用于自动化测试 Java 和 Scala 应用程序&#xff0c;它是 JUnit 和 NUnit 的一个强大替代品。TestNG 支持数据驱动测试、参数化测试、测试套件、依赖管理、多线程测试等特性。TestNG官网&#xff1a;TestNG Documentation 目录 1.TestNG 基…

think PHP导入导出excel

本地环境 think PHP5&#xff0c;PhpOffice/PhpSpreadsheet&#xff0c;composer PHP版本7.4&#xff0c;这个插件的最低版本要求7.2 配置PhpSpreadsheet 官网&#xff1a;https://phpspreadsheet.readthedocs.io/en/stable/ composer require phpoffice/phpspreadsheet数据库…

华强北宋仕强论道之项目管理

华强北宋仕强论道之项目管理&#xff0c;金航标和萨科微总经理宋仕强先生说&#xff0c;良好的项目管理是企业成功的关键之一&#xff0c;项目是公司最小的管理单元&#xff0c;而项目管理则是确保项目顺利完成的关键工作。在一个项目中&#xff0c;需要明确目标&#xff0c;合…

下载element-ui报错

此错误表示尝试从npm注册表下载“resize observer polyfill”包时超时。这可能是由于网络连接问题或npm注册表服务器的问题。 要解决此问题&#xff0c;您可以尝试以下步骤&#xff1a; 1.重试npm install命令&#xff1a;有时&#xff0c;网络问题会导致临时超时。再次运行npm…

用友NC printBill 任意文件读取/删除漏洞复现(XVE-2024-10609)

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC printBill 接口处存在任意文件读…

【Unity】为小球添加爆发力往前移动的代码

代码里的几个变量都需要在场景中提前创建好并赋值 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Shotobjt : MonoBehaviour {// 点击按钮&#xff0c;克隆一个prefab&#xff0c;然后给这个克隆后的对象添加往前方的力publi…

搭建Rust开发环境

Windows搭建 下载&#xff1a;https://www.rust-lang.org/zh-CN/tools/install Linux搭建 这里我更推荐基于Linux搭建。 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh

如何用微信小程序实现远程控制4路控制器/断路器

如何用微信小程序实现远程控制4路控制器/断路器呢&#xff1f; 本文描述了使用微信小程序调用HTTP接口&#xff0c;实现控制4路控制器/断路器&#xff0c;支持4路输出&#xff0c;均可独立控制&#xff0c;可接入各种电器。 可选用产品&#xff1a;可根据实际场景需求&#xf…

最新小红书颜值打分项目,吸引小姐姐,刷爆后端收益

嘿&#xff0c;朋友们&#xff01;今天我要给你们分享一个我自己都觉得挺诧异的项目&#xff0c;它叫做“颜值打分”。听起来有点搞笑对吧&#xff1f;但真的&#xff0c;这个项目已经帮助了很多人实现了月入万元的目标。你没听错&#xff0c;就是月入万元&#xff01;所以&…

品牌出海新趋势:掌握“微创新”策略,快速适应海外市场

在全球化的今天&#xff0c;品牌出海已成为众多企业拓展业务、实现国际化发展的重要途径。然而&#xff0c;海外市场与本土市场在文化、消费习惯、法律法规等方面均存在显著差异&#xff0c;这要求品牌在海外市场中必须灵活应变&#xff0c;通过微小的、有针对性的创新来快速适…