uniapp之通过vue-cli命令行创建Vue3/Vite版,JavaScript开发,引入uni-ui扩展组件

本文介绍了在Vue3和Vite环境下,如何配置高版本node,使用HBuilderX进行项目运行。同时,详细讲解了创建javascript工程、安装uni-ui、配置easycom以及处理组件导入问题的步骤。强调uni-ui是uni-app的基础组件补充,推荐按需引入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:

Vue3/Vite版要求 node 版本^14.18.0 || >=16.0.0
如果使用 HBuilderX(3.6.7以下版本)运行 Vue3/Vite 创建的最新的 cli 工程,需要在 HBuilderX 运行配置最底部设置 node路径 为自己本机高版本 node 路径(注意需要重启 HBuilderX 才可以生效)

  • HBuilderX Mac 版本菜单栏左上角 HBuilderX->偏好设置->运行配置->node路径
  • HBuilderX Windows 版本菜单栏 工具->设置->运行配置->node路径

环境安装
1.全局安装 vue-cli

npm install -g @vue/cli

2.创建以 javascript 开发的工程(如命令行创建失败,请直接访问 gitee 下载模板)

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

3.准备 sass

 npm i sass -D   或   yarn add sass -D  

4.安装 sass-loader

npm i sass-loader@10.1.1 -D   或   yarn add sass-loader@10.1.1 -D

5.安装 uni-ui

npm i @dcloudio/uni-ui   或   yarn add @dcloudio/uni-ui

6.配置easycom

使用 npm 安装好 uni-ui 之后,需要配置 easycom 规则,让 npm 安装的组件支持 easycom

打开项目根目录下的 pages.json 并添加 easycom 节点:

// pages.json
{
	"easycom": {
		"autoscan": true,
		"custom": {
			// uni-ui 规则如下配置
			"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
		}
	},
	
	// 其他内容
	pages:[
		// ...
	]
}

在 template 中使用组件:

<uni-badge text="1"></uni-badge>
<uni-badge text="2" type="success" @click="bindClick"></uni-badge>
<uni-badge text="3" type="primary" :inverted="true"></uni-badge>

注意

uni-ui 现在只推荐使用 easycom ,如自己引用组件,可能会出现组件找不到的问题
使用 npm 安装的组件,默认情况下 babel-loader 会忽略所有 node_modules 中的文件 ,导致条件编译失效,需要通过配置 vue.config.js 解决:

// 在根目录创建 vue.config.js 文件,并配置如下
module.exports = {
   transpileDependencies: ['@dcloudio/uni-ui']
}
// 如果是 vue3 + vite, 无需添加配置
  • uni-ui 是uni-app内置组件的扩展。注意与web开发不同,uni-ui不包括基础组件,它是基础组件的补充。web开发中有的开发者习惯用一个ui库完成所有开发,但在uni-app体系中,推荐开发者首先使用性能更高的基础组件,然后按需引入必要的扩展组件。
  • uni-ui 不支持使用 Vue.use() 的方式安装
<think>我们参考引用内容,特别是引用[4]提到django-vue-admin是一个前后端分离的框架,而后端用Django,前端用Vue+ElementUI,移动端用uniapp+uView。但用户问的是在UniApp中集成和使用vue-admin。这里注意,vue-element-admin通常是一个基于Vue和ElementUI的后台管理系统前端模板,而UniApp是一个多端开发框架。因此,我们需要考虑如何将vue-element-admin中的功能或组件迁移到UniApp中使用,或者寻找类似uniapp-admin的项目(如引用[2][3]提到的uniapp-admin)来替代。然而,用户明确提到“vue-admin”,我们需注意:-如果用户指的是vue-element-admin(一个流行的后台前端解决方案),那么它主要针对Web端,使用Vue和ElementUI,而UniApp主要面向小程序和移动端,两者有差异。在UniApp中直接使用vue-element-admin的组件可能不兼容,因为UniApp有自己的组件规范和运行环境。-如果用户指的是uniapp-admin(引用[2][3]),那么这是一个基于UniApp的管理系统模板,可以直接在UniApp中使用。根据引用[3]:“uniapp-admin采用了uni-app框架,这是一种使用Vue.js开发所有前端应用的框架”,并且集成了多种UI库和功能。因此,我们建议用户使用uniapp-admin模板进行开发,而不是尝试将vue-element-admin集成到UniApp中。步骤:1.创建UniApp项目,并引入uniapp-admin模板。2.根据模板的文档进行配置和使用。但用户的问题是如何集成和使用“vue-admin”,如果用户坚持要使用vue-element-admin的某些功能在UniApp中,我们需要考虑部分兼容性处理(如引用[5]提到的,在移动端运行时需要注意路由模式改为hash等)。但通常不推荐这样做,因为vue-element-admin的组件(如ElementUI)是为Web设计的,在移动端可能无法正常工作。因此,我们给出两个方向的建议:方向一:使用uniapp-admin(推荐)方向二:如果必须使用vue-element-admin中的某些组件或功能,则尝试将组件进行改造以适应UniApp。下面分别说明:###方向一:使用uniapp-admin模板1.**创建项目**:使用HBuilderX创建UniApp项目,或者通过命令行创建。2.**引入uniapp-admin**:可以从GitHub或Gitee上找到uniapp-admin模板,然后将其中的代码复制到你的项目中,或者直接使用模板创建项目。3.**配置项目**:根据引用[1],注意`main.js`是入口文件,配置VueApp。同时,引用[3]提到集成了colorUI、ThorUI等,需要按照文档引入这些UI库。4.**使用功能**:uniapp-admin已经集成了登录模板、搜索框、选项卡等,可以直接使用。###方向二:在UniApp中使用vue-element-admin的部分功能(不推荐,仅尝试)1.**组件改造**:将vue-element-admin中的组件改写成UniApp支持的组件(使用UniApp组件规范,如使用`view`代替`div`,并且样式需要调整)。2.**路由处理**:UniApp使用页面路由机制,而vue-element-admin使用vue-router。在UniApp中,页面路由需要在`pages.json`中配置。如果使用history模式,在移动端可能有问题,引用[5]建议改为hash模式或删除,并确保服务器配置。3.**状态管理**:如果原项目使用Vuex,UniApp也支持Vuex,可以沿用。4.**注意兼容性**:ElementUI组件无法在UniApp中使用,需要替换为UniAppUI组件库(如uView、ThorUI等)。###具体步骤(以方向一为例)1.**创建UniApp项目**:-在HBuilderX中,选择“文件”->“新建”->“项目”,选择“uni-app”,输入项目名称,选择模板(这里可以选择空模板,然后引入uniapp-admin)。-或者,从uniapp-admin的代码仓库(如引用[2][3]提到的项目)下载代码,然后导入HBuilderX。2.**项目结构**:-通常,uniapp-admin项目已经包含了基本的页面和组件。主要目录包括:-`pages`:页面文件-`components`:自定义组件-`static`:静态资源-`main.js`:入口文件-`App.vue`:应用配置-`manifest.json`:应用配置信息-`pages.json`:页面路由配置3.**运行项目**:-在HBuilderX中,选择运行到浏览器或模拟器。4.**使用模板功能**:-例如,登录页面可能已经存在,可以直接修改样式和逻辑。5.**添加新功能**:-在`pages.json`中添加新页面,然后创建对应的vue文件。###注意事项-多端兼容:UniApp支持多端,但不同平台可能有差异,需要测试。-UI库:uniapp-admin已经集成了ThorUI等,可以直接使用其组件,参考对应UI库的文档。###示例代码(main.js)根据引用[1],`main.js`的基本内容如下:```javascriptimportVuefrom&#39;vue&#39;importAppfrom&#39;./App&#39;Vue.config.productionTip=falseApp.mpType=&#39;app&#39;constapp=newVue({...App})app.$mount()```###相关问题1.UniApp中如何集成第三方UI库(如uView)?2.UniApp中如何实现页面路由和导航?3.如何将现有的vue-element-admin项目迁移到UniApp?4.uniapp-admin模板支持哪些功能?5.UniApp中如何处理用户权限(如RBAC)?希望这些信息能帮助你。</think>### 在 UniApp 中集成和使用 vue-admin 的步骤指南 根据引用内容分析,vue-admin 通常指基于 Vue 的后台管理系统模板(如 vue-element-admin),而 UniApp 是跨端开发框架。两者集成需解决兼容性问题,以下是具体方案: --- #### 一、选择兼容方案(关键步骤) 1. **方案选择** 直接集成 vue-element-admin 到 UniApp **不推荐**(因 Web 端组件与小程序环境不兼容)。推荐两种替代方案: - ✅ **方案 A**:使用专门为 UniApp 优化的管理模板(如引用[2][3]提到的 **uniapp-admin**) - ✅ **方案 B**:将 vue-admin 功能模块重构为 UniApp 组件 2. **方案对比** | 方案 | 优点 | 缺点 | |---|---|---| | uniapp-admin (推荐) | 原生支持多端、内置 UI 组件库(如 ThorUI)[^3] | 需适应新项目结构 | | 重构 vue-admin 组件 | 保留原有业务逻辑 | 需重写兼容代码、工作量大 | --- #### 二、集成 uniapp-admin 模板(方案 A) 1. **创建项目** 通过 HBuilderX 或 CLI 创建 UniApp 项目: ```bash # 使用 HBuilderX 创建 uni-app 项目 vue create -p dcloudio/uni-preset-vue my-admin-project ``` 2. **引入 uniapp-admin** 从官方仓库获取模板(引用[2]): ```javascript // 在 main.js 引入核心配置 import App from &#39;./App&#39; import uniAdmin from &#39;uniapp-admin-sdk&#39; // 假设SDK名称 Vue.use(uniAdmin, { uiFramework: &#39;thorui&#39;, // 使用ThorUI组件库[^3] authType: &#39;rbac&#39; // 启用RBAC权限控制[^4] }) ``` 3. **配置文件调整** 修改 `pages.json` 添加管理路由: ```json { "pages": [ { "path": "pages/admin/dashboard", "style": { "navigationBarTitleText": "控制台" } }, { "path": "pages/admin/user", "style": { "navigationBarTitleText": "用户管理" } } ], "tabBar": { "list": [{ "pagePath": "pages/admin/dashboard", "text": "首页" }] } } ``` --- #### 三、集成 vue-element-admin 功能(方案 B) 1. **组件兼容改造** - 替换 Web 专用组件(如 ElementUI → uView) - 路由系统改用 UniApp 路由(引用[5]): ```javascript // 修改路由模式为 hash const router = new Router({ mode: &#39;hash&#39;, // 避免 history 模式兼容问题[^5] routes: [...] }) ``` 2. **状态管理迁移** 保留 Vuex 逻辑,但需调整存储机制: ```javascript // store/index.js export default new Vuex.Store({ state: { ... }, actions: { login({ commit }) { // 使用 uni.request 替代 axios uni.request({ url: &#39;/api/login&#39;, success: res => commit(&#39;SET_TOKEN&#39;, res.data.token) }) } } }) ``` 3. **多端样式适配** 通过条件编译处理差异: ```vue <template> <!-- #ifdef H5 --> <el-button>Web按钮</el-button> <!-- #endif --> <!-- #ifdef MP-WEIXIN --> <u-button>小程序按钮</u-button> <!-- #endif --> </template> ``` --- #### 四、关键注意事项 1. **路由限制** UniApp 不支持嵌套路由,需将 vue-admin 的路由结构扁平化。 2. **权限控制** 使用 RBAC 模型时(引用[4]),在 `main.js` 初始化权限: ```javascript // 基于 django-vue-admin 的权限思路[^4] Vue.prototype.$permission = { check(role) { return currentUser.roles.includes(role) } } ``` 3. **打包配置** 针对安卓端需注意(引用[5]): - 在 `manifest.json` 中启用 `"hash"` 路由模式 - 资源路径使用相对路径 `./static/` --- #### 五、推荐项目结构 ```markdown my-uniapp-admin/ ├── src/ │ ├── api/ # 接口封装 │ ├── components/ # 通用组件 │ ├── libs/ # 第三方库(如uCharts[^3]) │ ├── store/ # Vuex 状态管理 │ ├── pages/ # 页面目录 │ │ └── admin/ # 管理功能模块 │ ├── static/ # 静态资源 │ └── main.js # 入口文件[^1] ├── pages.json # 全局页面配置 └── manifest.json # 跨端配置 ``` --- ### 相关问题 1.UniApp 中使用 vue-admin 时如何处理 ElementUI 组件兼容性问题? 2. 如何实现 uniapp-admin 中的 RBAC 权限控制系统[^4]? 3. UniApp 管理后台如何适配不同平台(H5/小程序/APP)的 UI 样式? 4. 使用 uniapp-admin 时如何集成图表库(如 uCharts)[^3]? 5. 在安卓端运行 vue-admin 项目为什么必须改用 hash 路由模式[^5]? > 提示:优先选择 **uniapp-admin** 模板可减少兼容工作量,其已集成 ThorUI 组件库、RBAC 权限控制等企业级功能[^2][^3][^4]。 [^1]: uniapp-admin 项目入口文件配置规范 [^2]: uniapp-admin 多平台支持特性 [^3]: uniapp-admin 技术栈与功能集成方案 [^4]: RBAC 权限控制在 Django-Vue-Admin 的实现 [^5]: vue-element-admin 在移动端的路由兼容方案
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值