通过vite+vue3+pinia从0到1搭建一个uniapp应用

最近项目上要做一个app,选择了用uniapp作为开发框架;我大概看了一下uniapp的文档,根据文档从0到1搭了一个uniapp应用供大家参考。

因为本人习惯使用了WebStorm编译器,但是uniapp官方推荐使用HBuilder搭建,如果和我一样习惯WebStorm或者是vscode其他的编译器进行开发,可以选择官方提供的第二种方式,利用脚手架命令进行搭建,接下来我会以脚手架的方式进行搭建。

一、模板下载

npx degit dcloudio/uni-preset-vue#vite Demo-uniapp

用编辑器打开对应的文件,执行pnpm i 下载对应依赖,下载完成后,pnpm run dev:h5即可启动

//下载依赖
pnpm i//启动
pnpm run dev:h5

运行后,就可以看到一个简单的uniapp应用

二、多环境配置

和pc端开发一样,我们在开发应用的时候,也会分有开发环境和生产环境,这里还是使用vite的脚本配置。

在根目录下创建.env.dev和.env.prod文件,分别对应的是开发环境和生产环境

在package.json中对应的脚本中补充命令即可,这里以h5的命令为例。

在main.js里查看打印结果,环境配置是否正确。

执行npm run dev:h5打印的是开发地址,npm run build:h5则走的是生产地址。

三、请求配置

基于第二步完成了多环境配置,那么我们就可以根据多环境,对请求进行统一的封装,这里以axios为例。

pnpm install axios

创建src目录下创建utils目录,创建request.js文件,这是我大概做的请求,具体的相应code码可以根据实际情况自行添加。

import axios from "axios";const request = axios.create({timeout:30000
})//拦截
request.interceptors.request.use(config => {switch (config.requestBase){default:config.baseURL = import.meta.env.VITE_BASE_APIbreak;}return config
},error => {console.log(error)
})//响应
request.interceptors.response.use(response => {const res = response.dataif(response.status===200 && res.code){if (res.code !== 200) {uni.showToast({icon:'none',title:'系统繁忙,稍后再试!'})return Promise.reject(new Error(res.msg || 'Error'))} else {return res}}else{return response}
},error => {console.log(error)return Promise.reject(error)
})
export default request

在其他页面使用请求

四、自动导入

pnpm install unplugin-auto-import -D

执行上面的命令后,在vite.config.js的plugins中添加自动导入组件即可,然后每个vue组件页面里就不用再导入vue和uni了。

import {defineConfig} from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import AutoImport from 'unplugin-auto-import/vite'
// https://vitejs.dev/config/
export default defineConfig({plugins: [uni(),AutoImport({imports: ['vue', 'uni-app'],dts: true})],server: {https: false,host: '0.0.0.0',port:5174,open: true},
})

五、状态管理

状态管理我还是选择的是pinia,直接执行以下命令,在main.js文件中引入

pnpm install pinia
//main.js文件import { createSSRApp } from "vue";
import App from "./App.vue";
import {createPinia} from "pinia";
export function createApp() {const app = createSSRApp(App);const store = createPinia()app.use(store)console.log(import.meta.env.VITE_BASE_API,'---------')return {app,};
}

在src目录下创建store文件夹,创建一个store进行状态管理。

按照以下方式使用。

六、UI组件

如果uniapp内置的ui库足够你使用,那么就不用再额外下载,如果需要额外的UI组件,可参考以下步骤。

我这里以uview-plus为例,按照文档步骤进行下载即可。

uview-plus文档:https://uiadmin.net/uview-plus/components/install.html

按照以下命令进行安装相关库。

pnpm install sass@1.63.2pnpm install sass-loader@10.4.1pnpm install uview-plus

在main.js中导入uview-plus组件库。

在uni.scss中导入uview-plus/theme.scss

在App.vue导入uview-plus/index.scss

在pages.json中要配置easycom

最后就可以在组件里使用uview-plus的组件了。

七、demo代码地址

https://github.com/banyan666/Demo-uniapp

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

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

相关文章

【Pytorch】torch.nn.functional模块中的非线性激活函数

在使用torch.nn.functional模块时,需要导入包: from torch.nn import functional 以下是常见激活函数的介绍以及对应的代码示例: tanh (双曲正切) 输出范围:(-1, 1) 特点:中心对称,适合处理归一化后的数据…

java-贪心算法

1. 霍夫曼编码(Huffman Coding) 描述: 霍夫曼编码是一种使用变长编码表对数据进行编码的算法,由David A. Huffman在1952年发明。它是一种贪心算法,用于数据压缩。霍夫曼编码通过构建一个二叉树(霍夫曼树&a…

【数据结构】【线性表】【练习】反转链表

申明 该题源自力扣题库19&#xff0c;文章内容&#xff08;代码&#xff0c;图表等&#xff09;均原创&#xff0c;侵删&#xff01; 题目 给你单链表的头指针head以及两个整数left和right&#xff0c;其中left<right&#xff0c;请你反转从位置left到right的链表节点&…

实时数仓:Lambda架构和Kappa架构有什么联系和区别

Kappa 和 Lambda 架构是处理大数据和实时数据流的两种不同设计模式。以下是对这两种架构的概述和比较&#xff1a; Lambda 架构 定义&#xff1a; Lambda 架构的全称是 Lambda Architecture。这个架构旨在处理大规模数据&#xff0c;结合了批处理和流处理的优点&#xff0c;以…

vllm源码解析(一):整体架构与推理代码

vlllm官方代码更新频发,每个版本都有极大变动, 很难说哪个版本好用. 第一次阅读vllm源码是0.4.0版本,对这版圈复杂度极高的调度代码印象深刻 0.4.1对调度逻辑进行重构,完全大变样, 读代码速度快赶不上迭代的速度了。 现在已经更新到0.5.4, 经过长时间观察&#xff0c;发现主要的…

数据库index(索引)使用注释事项

1、索引类型&#xff0c;通常选择NORMAL或者UNIQUE. NORMAL&#xff1a;正常的一种索引吧。 UNIQUE:索引列必须是不能重复的。 2、索引方法&#xff1a;通常选择BTREE 3、使用SQL查询的时候&#xff0c;不需要特别处理索引的字段。数据库会自动的处理&#xff0c;提升SQL的查…

集成了高性能ARM Cortex-M0+处理器的一款SimpleLink 2.4 GHz无线模块-RF-BM-2340B1

蓝牙模组 - RF-BM-2340B1是基于美国TI的CC2340R5为核心设计的一款SimpleLink 2.4 GHz 无线模块。支持Bluetooth 5.3 Low Energy、Zigbee 、IEEE 802.15.4g、TI 15.4-Stack (2.4 GHz)及私有协议。集成了高性能ARM Cortex-M0处理器&#xff0c;具有512 KB Flash、32 KB超低泄漏SR…

[QDS]从零开始,写第一个Qt Design Studio到程序调用的项目

前言 最近在使用Qt Design Studio进行开发&#xff0c;但是简中网上要不就是只搜得到Qt Designer(Qt Creator内部库)&#xff0c;要不就只搜得到一点营销号不知道从哪里搬来的账号&#xff0c;鉴于Qt Design Studio是一个这么强大的软件&#xff0c;自然是需要来进行一下小小的…

Spring Boot实现License生成和校验

Spring Boot实现License生成和校验 证书准备 # 1. 生成私钥库 # validity&#xff1a;私钥的有效期&#xff08;天&#xff09; # alias&#xff1a;私钥别称 # keystore&#xff1a;私钥库文件名称&#xff08;生成在当前目录&#xff09; # storepass&#xff1a;私钥库密码…

【大模型推理】vLLM 源码学习

强烈推荐 https://zhuanlan.zhihu.com/p/680153425 sequnceGroup 存储了相同的prompt对应的不同的sequence, 所以用字典存储 同一个Sequence可能占据多个逻辑Block&#xff0c; 所以在Sequence 中用列表存储 同一个block 要维护tokens_id 列表, 需要添加操作。 还需要判断blo…

核心速览12

研究背景 研究问题&#xff1a;这篇文章探讨了多模态人工智能&#xff08;Agent AI&#xff09;系统在理解和响应视觉和语言输入方面的潜力&#xff0c;特别是在物理和虚拟环境中的应用。Agent AI旨在通过感知和行动来增强人工智能系统的交互性和适应性。研究难点&#xff1a;…

【pyspark学习从入门到精通14】MLlib_1

目录 包的概览 加载和转换数据 在前文中&#xff0c;我们学习了如何为建模准备数据。在本文中&#xff0c;我们将实际使用这些知识&#xff0c;使用 PySpark 的 MLlib 包构建一个分类模型。 MLlib 代表机器学习库。尽管 MLlib 现在处于维护模式&#xff0c;即它不再积极开发…

从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望

作者&#xff1a;金峰&#xff08;项良&#xff09;、朱永林、赵世振&#xff08;寰奕&#xff09; 公司简介 杭州热联集团股份有限公司成立于 1997 年 10 月&#xff0c;是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务&…

若依springboot 删除一直转 问题处理

src\main\resources\static\ruoyi\js\ry-ui.js submit方法1578行添加 $.operate.successCallback(result); 在线体验 admin/admin123陆陆续续收到一些打赏&#xff0c;为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。 演示地址&#xff1a;http://ruoyi.vip 文档地址…

面向未来的智能视觉参考设计与汽车架构,思尔芯提供基于Arm技术的创新方案

引言&#xff1a; 随着科技的飞速发展&#xff0c;智能视觉IoT已成为科技领域的热门话题&#xff0c;为智能家居、智慧城市等领域带来新机遇。然而&#xff0c;物联网市场的碎片化特性对智能视觉芯片设计构成挑战。同时&#xff0c;汽车行业正经历技术驱动的变革&#xff0c;软…

Multiple instance learning with graph neural networks文献笔记

基本信息 文章链接&#xff1a;[1906.04881] Multiple instance learning with graph neural networks 将每个包视为一个图&#xff0c;利用GNN学习包的嵌入&#xff0c;以探索包中实例之间有用的结构信息。最终的图表示被送入分类器进行标签预测。 具体方法 输入&#xff…

Elasticsearch是如何实现Master选举的?

大家好&#xff0c;我是锋哥。今天分享关于【Elasticsearch是如何实现Master选举的&#xff1f;】面试题。希望对大家有帮助&#xff1b; Elasticsearch是如何实现Master选举的&#xff1f; Elasticsearch 使用 Zen Discovery 插件&#xff08;在较新的版本中是基于 Zen2&…

WEB-通用漏洞SQL注入CTF二次堆叠DNS带外

知识点&#xff1a; 1、数据库堆叠注入 根据数据库类型决定是否支持多条语句执行 数据库支持多条语句执行就是堆叠&#xff0c;如&#xff1a; 2、数据库二次注入 应用功能逻辑涉及上导致的先写入后组合的注入 3、数据库Dnslog注入 解决不回显&#xff08;反向连接&#…

上生产时连接mysql数据库总是被拒绝

背景&#xff1a; 本地项目连接数据正常 测试环境也正常 到生产上就一直报错 且生产上使用mysql连接工具可以正常连接 报错信息&#xff1a;Connections refused: connect 调查&#xff1a; 数据库版本&#xff1a; 本地 mysql5.7.24 测试 8.3 生产5.7.36 连接驱动&#xf…

20241121买深圳保障房还是租保租房小思考?

1. 我的买深圳保障房或租保租房的出发点&#xff1f; 我的需求&#xff1a;主要是小孩读书 如果买深圳保障房例如人才房和安居房&#xff0c;会有购房合同&#xff0c;则读书积分等同有红本积分&#xff0c;相当于可以选择一些不错的公办学校 如果租保租房&#xff0c;由于查…