uni-app x使用uview-plus
一、概述
uView-Plus官网提供完整框架文档与资源下载,是兼容多端开发的uni-app生态框架,支持安卓、iOS、微信小程序等10个平台。
- 官网入口:主文档站(uiadmin.net)|GitHub Pages(ijry.github.io)。
包含组件文档、工具库说明及快速体验模板入口12 - 核心特性:
- 基于uView2.0升级,支持Vue3组合式API开发。1
- 提供180+组件库,覆盖表单、布局、图表等场景。3
- 集成网络请求、路由跳转等工具库。4
- 多端兼容:
一次编写即可发布到Android、iOS、微信/QQ/支付宝小程序等10个平台,H5适配度达95%
官网地址:https://uview-plus.jiangruyi.com/
官网组件预览:https://uview-plus.jiangruyi.com/h5/#/

二、安装uview-plus
uview-plus是免费开源的,无需授权即可商用。
1.安装依赖
打开HBuilderX,新增终端标签卡

在项目根目录打开终端,执行
npm install uview-plus
npm install dayjs
npm install clipboard
2. 配置 main.js
在 main.js 中引入并使用 uview-plus:
import App from './App.uvue'
import { createSSRApp } from 'vue'
import uviewPlus from 'uview-plus'
export function createApp() {
const app = createSSRApp(App)
app.use(uviewPlus)
return {
app
}
}
3. 引入全局样式
在 uni.scss 中添加:
@import 'uview-plus/theme.scss';
最后一行,增加即可
在 App.vue 的 <style lang="scss"> 中添加:
@import 'uview-plus/index.scss';
App.vue默认没有scss,最后一行增加以下代码
<style lang="scss">
@import 'uview-plus/index.scss';
</style>
4. 配置 easycom 自动引入
在 pages.json 中添加:
"easycom": {
"autoscan": true,
"custom": {
"^u--(.*)": "uview-plus/components/u-$1/u-$1.vue",
"^up-(.*)": "uview-plus/components/u-$1/u-$1.vue",
"^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue"
}
}
最后几行,增加即可
5. 配置 manifest.json(可选)
如开发微信小程序,在 manifest.json 的源码视图中添加:
"mp-weixin": {
"mergeVirtualHostAttributes": true
}
6. 重启 HBuilderX
完成上述配置后,重启 HBuilderX 使配置生效。
7. 测试使用
在页面中直接使用组件,例如:
<u-button type="primary">测试按钮</u-button>
这里,直接在index.uvue里面,增加一行,例如:
<template>
<view>
<image class="logo" src="/static/logo.png"></image>
<text class="title">{{title}}</text>
<u-button type="primary">测试按钮</u-button>
</view>
</template>
运行,效果如下:

三、编写登录页面
在pages目录,新建一个文件夹login,然后在login里面,新增文件login.uvue,内容如下:
<template>
<view class="">
<!-- 导航栏 -->
<u-navbar title="用户登录" /> <!-- 内容区 -->
<view class="content">
<!-- 头像 -->
<u-avatar :src="logo" size="80"></u-avatar> <!-- 表单 -->
<u--form :model="form" labelPosition="left">
<u--input v-model="form.username" placeholder="请输入用户名" prefixIcon="account" />
<u--input v-model="form.password" placeholder="请输入密码" type="password" prefixIcon="lock" />
</u--form> <!-- 按钮 -->
<u-button text="登录" type="primary" @click="login" :loading="loading" /> <!-- 链接 -->
<view class="links">
<u-cell title="忘记密码?" isLink @click="gotoForget" />
<u-cell title="注册账号" isLink @click="gotoRegister" />
</view>
</view>
</view>
</template> <script>
export default {
data() {
return {
title: 'Hello',
logo: '/static/logo.png',
loading: false,
form: {
username: '',
password: '',
}
}
},
onLoad() { },
methods: {
login() {
if (!this.form.username) {
uni.showToast({ title: '请输入用户名', icon: 'none' })
return
}
this.loading = true
// 模拟登录请求
setTimeout(() => {
this.loading = false
uni.showToast({ title: '登录成功' })
}, 1500)
},
gotoForget() {
uni.navigateTo({ url: '/pages/forget/index' })
},
gotoRegister() {
uni.navigateTo({ url: '/pages/register/index' })
} }
}
</script> <style scoped>
.content {
padding: 40rpx;
display: flex;
flex-direction: column;
align-items: center;
} .links {
margin-top: 30rpx;
width: 100%;
}
</style>
编辑文件pages.json,增加login路由
"pages": [ //pages数组中第一项表示应用启动页,参考:https://doc.dcloud.net.cn/uni-app-x/collocation/pagesjson.html
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app x"
}
},
{
"path": "pages/login/login"
}
]
访问页面:http://localhost:5173/#/pages/login/login
效果如下:

uni-app x使用uview-plus的更多相关文章
- uni app中使用自定义图标库
项目中难免会用到自定义图标,那在uni app中应该怎么使用呢? 首先, 将图标目录放在static资源目录下: 在main.js中引入就可以全局使用了 import '@/static/icon-o ...
- uni app 零基础小白到项目实战-1
uni-app是一个使用vue.js开发跨平台应用的前端框架. 开发者通过编写vue.js代码,uni-app将其编译到Ios,android,微信小程序等多个平台,保证其正确并达到优秀体验. Uni ...
- uni app以及小程序 --环境搭建以及编辑器
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 根据以上网页下载自己电脑相应的版本的微信开发者工具(目录 ...
- uni app canvas 不生效
canvas 创建canvas绘图上下文. <canvas style="width: 300px; height: 200px;" canvas-id="firs ...
- uni app 零基础小白到项目实战2
<template> <scroll-view v-for="(card, index) in list" :key="index"> ...
- uni app 零基础小白到项目实战
$emit 子组件传给父组件 $ref 父组件操作子组件 公用模板 uni-app全局变量的几种实现方法 const websiteUrl = 'http' const now = Date.now ...
- uni app中关于图片的分包加载
因为在项目中使用了大量的静态资源图片,使得主包体积过大, 而把这些图片全部放到服务器又有点麻烦,就想能不能把图片也分包,但是直接放在分包下的话导致图片资源找不到了, 在社区中看到大佬分享的十分有用,特 ...
- 5G到来,App的未来,是JavaScript,Flutter还是Native ?
Native App React Native(RN)发布于2015年,也是使用JavaScript语言进行跨平台APP的开发.与H5开发不同的是,它使用JS桥接技术在运行时编译成各个平台的Nativ ...
- Vue接口日常学习
最近使用uni.app 进行app的开发 页面搭完之后,发现不会调接口,今天学习了下 各个程序运行时,都会发起网络请求,网络相关的API在使用之前都会在使用前配置域名白名单 首先 现在中间件上一 ...
- 微信小程序支付功能前端流程
只是分享一下小程序支付功能的前端流程和代码, 仅供参考(使用的是uni app). handleCreate () { /** 第一步:前台将商品数据发送到后台,后台创建订单入库并返回订单id等信息 ...
随机推荐
- Confidence First: Yale University's ideal of mind
"客观规律"."科学"与"真理"无处不在,只待"有缘人". 艺术化形象化的通俗表达:"道物法术器"遇 ...
- SciTech-Mathmatics-Analysis: Bouncing Function(震荡函数, 导数±震荡):L'Hospital + 点导数 + 导数 + 连续 + 极限 + 领域 +
SciTech-Mathmatics-Analysis: 考研易错概念: 一点的导数大于0, 能不能推出函数在某邻域单调递增? ✘ 无穷小的倒数,一定为无穷大? ✘ \(\large L'Hospit ...
- SciTech-BigDataAIML-LLM-Transformer Series-Self-Attention:由Dot-Product(向量点乘)说起
本文公式中变量加粗表示该变量为向量或矩阵 Softmax后每个值\(\in [0, 1)\)且总和为0 经过Softmax的归一化后: 每个值是一\(\in [0, 1)\)的权重系数(可理解成一&q ...
- Rust: 如何用bevy画2d图形及使用按键控制移动
bevy自带的画图功能有点弱,得先引入bevy_prototype_lyon, Cargo.toml依赖部分如下: [dependencies] bevy = { version = "0. ...
- 进阶篇:2.3)DFMA的运用方法(个人方法)
本章目的:将DFMA运用到实际中,个人方法谈. 1.DFMA事后补缺的运用步骤(实践) 1)准备DFMA设计检查表格(如果你所在公司用的是DFMA专用软件,请忽略): 2)准备设计原则对应的资料书籍: ...
- 2023年4月最新全国省市区县和乡镇街道行政区划矢量边界坐标经纬度地图数据 shp geojson json
发现个可以免费下载全国 geojson 数据的网站,推荐一下.支持全国.省级.市级.区/县级.街道/乡镇级以及各级的联动数据,支持导入矢量地图渲染框架中使用,例如:D3.Echarts等 geojso ...
- maven的 ${project.basedir}
<dependency> <groupId>com.utils.module</groupId> <artifactId>dsg-public-oper ...
- GitOps:云原生时代的革命性基础设施管理范式
在数字化转型浪潮席卷全球的当下,云原生技术已成为企业构建现代化应用的事实标准.然而,随着应用复杂度的指数级增长,传统基础设施管理方式正面临前所未有的挑战.GitOps作为一种颠覆性的管理理念,正在重塑 ...
- 【攻防世界】a_good_idea
1. 首先下载附件,解压出来之后得到的是一个jpg图片,还是先放到StegSolve看看吧. 2. 没有什么有用信息,于是继续放到010 Editor中查看,滑到代码最下面发现了两个文件to.png和 ...
- 修改 winget 镜像
以管理员身份启动 PowerShell , 运行以下 2 条命令: winget source remove winget winget source add winget https://mirro ...