uView UI,是uniapp生态最优秀的UI框架
官网:https://www.uviewui.com/components/intro.html
多平台快速开发的UI框架
体验
介绍
来由
uni-app2018年初发布以来,一直蓬勃发展,一派欣欣向荣,社区也是人声鼎沸,众望所归。
因此,uView应运而生,uView的目标是成为uni-app生态最优秀的UI框架。
关于uView的取名来由,首字母u
来自于uni-app首字母,uni-app是基于Vue.js,Vue和View(延伸为UI、视图之意)同音,同时view
组件uni-app中 最基础,最重要的组件,故取名uView,表达源于uni-app和Vue之意,同时在此也对它们表示感谢。
适用领域
uView是uni-app生态专用的UI框架,uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码, 可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台(引言自uni-app网)。
说明,由于uni-app目前暂未支持编译到PC端,所以uView目前也不适用于PC端,如uni-app兼容了PC端,uView也会第一时间跟进适配。
版权信息
uView遵循MIT开源协议,意味着您无需支付任何费用,也无需授权,即可将uView应用到您的产品中。
注意:这并不意味着您可以将uView应用到非法的领域,比如涉及赌博,暴力等方面。如因此产生纠纷等法律问题,uView不承担任何责任。
安装
说明
由于uView使用easycom
模式,让您无需引入组件即可直接使用,但是此功能需要Hbuilder X 2.5.5及以上版本才支持,详见配置easycom组件模式。 easycom
打包的时候是按需引入的,您可以放心引入uView的整个组件库,打包的会自动剔除您没有使用的组件。
下载安装
使用下载的方式安装,能更方便阅读源码,但是每次升级都需要重新下载并覆盖uview-ui
文件夹。
- 如果您的项目是由HBuilder X创建的标准uni-app项目,解压后将
uview-ui
文件夹,复制到项目根目录。 - 如果您的项目是由vue-cli模式创建的, 请将下载解压的
uview-ui
文件夹放到项目的src
文件夹中即可。
注意: 此安装方式必须要按照下载方式安装的配置中的说明配置了才可用。
下载地址(1.4.0):https://ext.dcloud.net.cn/plugin?id=1593
示例项目
此方式为整个uView演示项目,里面有uView核心,组件演示,模板等,建议用户可以下载 此项目运行用于查看UI演示效果,复制模板案例,通过里面的示例,可以快速掌握某一个组件的用法。
下载地址(1.4.0):https://ext.dcloud.net.cn/plugin?id=1593
注意
演示项目不适用于直接开发中,它只是演示用的,可以直接运行并查看效果。
如果在微信开发工具真机预览时,提示分包太大运行的问题,请在HBuilder X
进行设置:菜单栏 运行 -> 运行到小程序模拟器,在下拉菜单中勾选"运行时是否压缩代码"
空白项目
此方式为一个完整的uni-app示例工程(使用Hbuilder X创建,非vue-cli模式创建), 它适用于新启动的项目,其中已包含了uView,并且做好了所有配置,让您无需任何配置,开箱即用。
使用方法: 下载演示项目,解压根目录的压缩包,即可得到空白项目。
下载地址(1.4.0):https://ext.dcloud.net.cn/plugin?id=1593
npm安装
使用npm的方式安装,能更方便进行升级。
- 如果您的项目是通过vue-cli模式创建的, 无需手动npm安装
scss
,因为已内置scss
。
注意: 此安装方式必须要按照npm方式安装的配置中的说明配置了才可用,且项目名称不能有中文字符。
注意!
由于HX编译错误的原因的,目前(2020-05-06)不支持通过cnpm安装uView,这意味着您只能通过npm安装uView,如果您的网络无法使用npm, 那就使用下载的方式安装,等HX修复此问题,可以使用cnpm的时候,我们会撤销此通告。
// 如果您的项目是HX创建的,根目录又没有package.json文件的话,请先执行如下命令:
// npm init -y
// 安装
npm install uview-ui
// 更新
npm update uview-ui
版本查询
有两种方式可以查询到正在使用的uView的版本:
- 通过
console.log
打印的形式
console.log(this.$u.config.v);
// 或者(二者等价)
console.log(this.$u.config.version);
- 通过源码查看的形式
可以查阅uView的配置文件得知当前版本号,具体位置为"/uview-ui/libs/config/config.js"。
一 npm配置
关于SCSS
uView依赖SCSS,您必须要安装此插件,否则无法正常运行。
- 如果您的项目是由
HBuilder X
创建的,相信已经安装scss插件,如果没有,请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安装, 如不生效,重启HX即可 - 如果您的项目是由vue-cli创建的,请通过以下命令安装对sass(scss)的支持,如果已安装,请略过。
// 安装node-sass
npm i node-sass -D
// 安装sass-loader
npm i sass-loader -D
准备工作
在进行配置之前,请确保您已经根据安装中的步骤对uView进行了npm安装,如果没有,请先执行安装:
// 如果您的项目是HX创建的,根目录又没有package.json文件的话,请先执行如下命令:
// npm init -y
// 安装
npm install uview-ui
配置步骤
1. 引入uView主JS库
在项目根目录中的main.js
中,引入并使用uView的JS库,注意这两行要放在import Vue
之后。
// main.js
import uView from "uview-ui";
Vue.use(uView);
2. 在引入uView的全局SCSS主题文件
在项目根目录的uni.scss
中引入此文件。
/* uni.scss */
@import ‘uview-ui/theme.scss‘;
3. 引入uView基础样式
注意!
在App.vue
中首行的位置引入,注意给style标签加入lang="scss"属性
<style lang="scss">
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
@import "uview-ui/index.scss";
</style>
4. 配置easycom组件模式
此配置需要在项目根目录的pages.json
中进行。
温馨提示
uni-app为了调试性能的原因,修改easycom
规则不会实时生效,配置完后,您需要重启HX或者重新编译项目才能正常使用uView的功能。
// pages.json
{
"easycom": {
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
},
// 此为本身已有的内容
"pages": [
// ......
]
}
二 下载安装方式配置
关于SCSS
uView依赖SCSS,您必须要安装此插件,否则无法正常运行。
- 如果您的项目是由
HBuilder X
创建的,相信已经安装scss插件,如果没有,请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安装, 如不生效,重启HX即可 - 如果您的项目是由
vue-cli
创建的,请通过以下命令安装对sass(scss)的支持,如果已安装,请略过。
// 安装node-sass
npm i node-sass -D
// 安装sass-loader
npm i sass-loader -D
准备工作
在进行配置之前,请确保您已经根据安装中的步骤对uView进行了下载安装,如果没有,请先下载安装。
配置步骤
1. 引入uView主JS库
在项目根目录中的main.js
中,引入并使用uView的JS库,注意这两行要放在import Vue
之后。
// main.js
import uView from "uview-ui";
Vue.use(uView);
2. 在引入uView的全局SCSS主题文件
在项目根目录的uni.scss
中引入此文件。
/* uni.scss */
@import ‘uview-ui/theme.scss‘;
3. 引入uView基础样式
注意!
在App.vue
中首行的位置引入,注意给style标签加入lang="scss"属性
<style lang="scss">
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
@import "uview-ui/index.scss";
</style>
4. 配置easycom组件模式
此配置需要在项目根目录的pages.json
中进行。
温馨提示
uni-app为了调试性能的原因,修改easycom
规则不会实时生效,配置完后,您需要重启HX或者重新编译项目才能正常使用uView的功能。
// pages.json
{
"easycom": {
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
},
// 此为本身已有的内容
"pages": [
// ......
]
}