如何搭建一个适配微信小程序,h5,app的uni-app项目

在vscode搭建 uni-app 项目(Vue 3 + Vite + Pinia + uView Plus)

一、环境准备

1. 安装 Node.js

确保已安装 Node.js(需≥14版本),可通过以下命令检查版本:

node -v

2. 安装 VSCode

从 VSCode 官网 下载并安装适合你操作系统的版本。

3. 安装 uni-app 官方插件

在 VSCode 中打开扩展视图(快捷键 Ctrl+Shift+X),搜索 “uni-app”,找到官方插件并安装。

4. 安装 Volar 插件

Volar 是 Vue 3 的官方语言服务,提供智能感知、语法检查等功能。在扩展视图中搜索 “Volar” 并安装。

二、创建项目

1. 初始化项目

首先,确保你已经安装了 Node.js 和 npm。然后,打开终端,使用以下命令创建一个新的 uni-app 项目:(个人node 版本 18.18.2)

注意: Vue3/Vite版要求 node 版本^14.18.0 || >=16.0.0

npm init uni-app my-uniapp-project --template=vue3-vite-uni

2. 进入项目目录

cd my-uniapp-project

3. 安装依赖

运行以下命令安装项目依赖:

npm install

4. 安装 uView Plus

安装 uView Plus UI 库:

npm install uview-plus

5. 配置 uView Plus

在 main.js 中引入并配置 uView Plus:

// main.js
import { createSSRApp } from 'vue';
import App from './App.vue';
import uView from 'uview-plus';export function createApp() {const app = createSSRApp(App);app.use(uView);return {app,};
}

在 main.ts 中引入 uView Plus 的样式:

// main.ts
import 'uview-plus/dist/style/index.scss';

6. 安装 Pinia

安装 Pinia 状态管理库:

npm install pinia

在 main.js 中引入并创建 Pinia 实例:

// main.js
import { createPinia } from 'pinia';
import { createApp } from 'vue';
import App from './App.vue';
import uView from 'uview-plus';const app = createApp(App);
app.use(createPinia());
app.use(uView);
app.mount('#app');

7. 创建 Pinia Store

在 src/stores 目录下创建一个新的 store 文件,例如 user.js:

// src/stores/user.js
import { defineStore } from 'pinia';export const useUserStore = defineStore('user', {state: () => ({name: 'John Doe',}),actions: {setName(name) {this.name = name;},},
});

在组件中使用 store:

<template><view><text>{{ userName }}</text><u-button @click="changeName">Change Name</u-button></view>
</template><script setup>
import { useUserStore } from '../stores/user';const userStore = useUserStore();
const userName = computed(() => userStore.name);function changeName() {userStore.setName('Jane Doe');
}
</script>

8. 配置 Vite

在 vite.config.js 中配置 Vite 以支持 uni-app:

// vite.config.js
import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';export default defineConfig({plugins: [uni()],
});

9. 配置package.json

这里需要适配h5、微信小程序、以及app或者其他各种小程序
配置以下命令在package.json

{"scripts": {"dev": "uni dev","dev:h5": "uni dev -p h5","dev:mp-weixin": "uni dev -p mp-weixin","build:h5": "uni build -p h5","build:mp-weixin": "uni build -p mp-weixin","build:mp-baidu": "uni build -p mp-baidu","build:mp-jd": "uni build -p mp-jd","build:mp-kuaishou": "uni build -p mp-kuaishou","build:mp-lark": "uni build -p mp-lark","build:mp-qq": "uni build -p mp-qq","build:mp-toutiao": "uni build -p mp-toutiao"}
}

以及对应的依赖项在dependencies

 	"@dcloudio/uni-app": "3.0.0-4040520250104002","@dcloudio/uni-app-harmony": "3.0.0-4040520250104002","@dcloudio/uni-app-plus": "3.0.0-4040520250104002","@dcloudio/uni-components": "3.0.0-4040520250104002","@dcloudio/uni-h5": "3.0.0-4040520250104002","@dcloudio/uni-mp-alipay": "3.0.0-4040520250104002","@dcloudio/uni-mp-baidu": "3.0.0-4040520250104002","@dcloudio/uni-mp-jd": "3.0.0-4040520250104002","@dcloudio/uni-mp-kuaishou": "3.0.0-4040520250104002","@dcloudio/uni-mp-lark": "3.0.0-4040520250104002","@dcloudio/uni-mp-qq": "3.0.0-4040520250104002","@dcloudio/uni-mp-toutiao": "3.0.0-4040520250104002","@dcloudio/uni-mp-weixin": "3.0.0-4040520250104002",

10.安装对应依赖并 运行项目

使用以下命令运行项目:

npm install
npm run dev:h5  // 运行 H5 平台
npm run dev:mp-weixin  // 运行微信小程序

这将启动开发服务器,并在浏览器中打开项目。

11. 条件编译

uni-app 支持条件编译,允许你根据不同平台编写特定的代码。例如:

// #ifdef H5
console.log('This code will only run on H5 platform');
// #endif// #ifdef MP-WEIXIN
console.log('This code will only run on WeChat Mini Program');
// #endif// #ifdef APP-PLUS
console.log('This code will only run on App platform');
// #endif

这样你可以根据需要在 请求拦截 或者 路径处理 时区分不同的运行环境

12. 构建项目

要构建项目,使用以下命令:

npm run build:h5  // 对应的命令

这将生成一个构建后的文件夹,其中包含可以部署的静态文件。

未完待续。。。

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

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

相关文章

Kotlin apply 方法的用法和使用场景

Kotlin apply 方法的用法和使用场景 1. 方法简介 apply 是 Kotlin 标准库中的一个扩展函数&#xff0c;用于对对象执行一系列操作&#xff0c;并返回该对象本身。它的语法如下&#xff1a; inline fun <T> T.apply(block: T.() -> Unit): T参数&#xff1a;block 是…

一文解读python高阶功能:匿名函数到魔法方法(__call__)

文章目录 一、python中匿名方法的使用使用示例注意事项总结 二、匿名函数和魔法方法的结合示例&#xff1a;结合 lambda 和 __call__解释更复杂的示例 总结 一、python中匿名方法的使用 在 Python 中&#xff0c;匿名方法是通过 lambda 关键字定义的&#xff0c;通常称为 lamb…

云服务器新手配置内网穿透服务(frp)

首先你得有一个公网服务器&#xff0c;有了它你就可以借助它&#xff0c;将自己电脑进行配置内网穿透&#xff0c;让自己内网电脑也可以异地轻松访问。网上教程较多&#xff0c;特此记录我自己的配置&#xff0c;避免迷路&#xff0c;我这里只记录我自己云服务小白&#xff0c;…

基于STM32的火灾报警设备(阿里云平台)

目录 前言&#xff1a; 一、项目介绍和演示视频 二、硬件需求准备 三、硬件框图 1. 原理图 2. PCB 四、CubeMX配置 五、代码框架 前言&#xff1a; 源代码下载链接&#xff1a; https://download.csdn.net/download/m0_74712453/90474701 需要实物的可以私信博主或者…

学习笔记之车票搜索为什么用Redis而不是ES?

在文章正式开始前&#xff0c;大家打开 12306.cn 搜索一趟列车&#xff0c;根据搜索条件判断&#xff0c;数据搜索技术使用 ElasticSearch 或者其它搜索技术是否合适&#xff1f; 这里我先把答案说下&#xff0c;12306 车票搜索用的是 Redis &#xff0c;而不是大家常用的 Ela…

揭秘AI:机器学习与深度学习的奥秘

文章目录 机器学习与深度学习1. 什么是人工智能&#xff1f;2. 机器学习、深度学习和人工智能又是什么关系&#xff1f;3. 人工智能解决了什么问题&#xff1f;为什么需要人工智能&#xff1f;4. 机器学习、深度学习常用术语1&#xff09;模型2&#xff09;数据集3&#xff09;…

【具体场景实践】使用存储过程查数据全流程+自动调度

文章目录 场景设计场景描述:公司员工管理系统需求1. 创建数据库和表2. 插入测试数据3. 复杂存储过程4. 调用存储过程5. 结果示例6. 细节优化存储过程总结7. 自动定期执行存储过程7.1 启用 MySQL 事件调度器7.2 创建定时任务(每天凌晨 2 点自动执行)7.3 查看和管理事件1️⃣ …

【ubuntu】——wsl中使用windows中的adb

一、引言 在 Windows Subsystem for Linux&#xff08;WSL&#xff09;环境下工作时&#xff0c;有时需要使用 Android Debug Bridge&#xff08;ADB&#xff09;工具与 Android 设备进行交互。通过特定设置&#xff0c;能够在 WSL 中便捷地调用 Windows 系统中已安装的 ADB&a…

Centos离线安装gcc

文章目录 Centos离线安装gcc1. gcc是什么&#xff1f;2. gcc下载地址3. gcc的安装4. 安装结果验证 Centos离线安装gcc 1. gcc是什么&#xff1f; GCC&#xff08;GNU Compiler Collection&#xff09;是 GNU 项目下的开源编译器套件&#xff0c;主要用于将 C、C 等编程语言的源…

JAVA中的多态性以及它在实际编程中的作用

JAVA中的多态性以及它在实际编程中的作用&#xff1f; 在Java中&#xff0c;多态性是指一个对象可以具有多种形态。它主要体现在两个方面&#xff1a;编译时多态和运行时多态。 1.编译时多态 编译时多态通过方法重载&#xff08;Overloading&#xff09;来实现。方法重载是指…

NetLink内核套接字案例分析

一、基础知识 Netlink 是 Linux 系统中一种内核与用户空间通信的高效机制&#xff0c;而 Netlink 消息是这种通信的核心载体。它允许用户态程序&#xff08;如网络配置工具、监控工具&#xff09;与内核子系统&#xff08;如网络协议栈、设备驱动&#xff09;交换数据&#xff…

批量压缩与优化 Excel 文档,减少 Excel 文档大小

当我们在 Excel 文档中插入图片资源的时候&#xff0c;如果我们插入的是原图&#xff0c;可能会导致 Excel 变得非常的大。这非常不利于我们传输或者共享。那么当我们的 Excel 文件非常大的时候&#xff0c;我们就需要对文档做一些压缩或者优化的处理。那有没有什么方法可以实现…

基于深度学习的多模态人脸情绪识别研究与实现(视频+图像+语音)

这是一个结合图像和音频的情绪识别系统&#xff0c;从架构、数据准备、模型实现、训练等。包括数据收集、预处理、模型训练、融合方法、部署优化等全流程。确定完整系统的组成部分&#xff1a;数据收集与处理、模型设计与训练、多模态融合、系统集成、部署优化、用户界面等。详…

保姆级离线TiDB V8+解释

以前学习的时候还是3版本&#xff0c;如今已经是8版本了 https://cn.pingcap.com/product-community/?_gl1ujh2l9_gcl_auMTI3MTI3NTM3NC4xNzM5MjU3ODE2_gaMTYwNzE2NTI4OC4xNzMzOTA1MjUz_ga_3JVXJ41175MTc0MTk1NTc1OC4xMS4xLjE3NDE5NTU3NjIuNTYuMC41NDk4MTMxNTM._ga_CPG2VW1Y4…

spark实验2

一.实验题目 实验所需要求&#xff1a; centos7虚拟机 pyspark spark python3 hadoop分布式 统计历届春晚的节目数目 统计各个类型节目的数量&#xff0c;显示前10名 统计相声类节目历年的数目。 查询每个演员在春晚上表演节目的数量。 统计每年各类节目的数量&#xff0…

学习文章:Spring Boot 中如何使用 `@Async` 实现异步处理

文章目录 学习文章&#xff1a;Spring Boot 中如何使用 Async 实现异步处理 一、什么是 Async&#xff1f;优点&#xff1a; 二、Spring Boot 中启用 Async1. 启用异步支持2. 配置线程池&#xff08;可选&#xff09;3. 使用 Async 注解4. 调用异步方法 三、Async 的进阶用法1.…

Manus:成为AI Agent领域的标杆

一、引言 官网&#xff1a;Manus 随着人工智能技术的飞速发展&#xff0c;AI Agent&#xff08;智能体&#xff09;作为人工智能领域的重要分支&#xff0c;正逐渐从概念走向现实&#xff0c;并在各行各业展现出巨大的应用潜力。在众多AI Agent产品中&#xff0c;Manus以其独…

Git Fast-forward 合并详解:原理、场景与最佳实践

在使用 Git 进行团队协作时&#xff0c;我们经常需要合并分支。合并方式有很多种&#xff0c;其中 Fast-forward&#xff08;快速合并&#xff09; 是一种最简单且无冲突的合并方式。本文将详细介绍 Fast-forward 的原理、适用场景、常见问题及最佳实践。 一、Fast-forward 合并…

命令行重启Ubuntu软件

我是用Todesk远程桌面&#xff0c;如果卡死的时候&#xff0c;只能通过ssh连接命令行。于是&#xff0c;就有了如标题所示的需求。 首先&#xff0c;我们看一下todesk在系统里叫什么名字&#xff1a; systemctl list-unit-files | grep -i todesk看到发现是"todeskd.serv…

算法每日一练 (11)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 算法每日一练 (11)全排列题目描述解题思路解题代码c/c…