uniapp组件库uview-ui的使用

举报
林太白 发表于 2025/03/31 15:56:10 2025/03/31
【摘要】 uniapp组件库uview-ui的使用

uniapp组件库uview-ui的使用

1、uView的认识

使用uView有哪些好处呢

  • 平台兼容性:uView UI 针对不同的 UniApp 支持的平台(如微信小程序、App 等)进行了优化和适配,可以确保在各个平台上的组件保持一致性和兼容性。
  • 更新和维护:uView UI 的版本更新能及时更新最新的功能和修复 bug

我们看看uniapp官方给我们的提示:


🍌 官方介绍
uView UI
是全面兼容nvue的uni-app生态框架
全面的组件和便捷的工具会让您信手拈来,如鱼得水。

image.png

官网的相关地址

uviewui.com

2、安装uView

vue2项目建议使用uview-UI

vue3项目建议使用uview-plus

因为vue3使用的是
uview-plus(uiadmin.net/uview-plus)
(https://uiadmin.net/uview-plus/)

(1)首先,我们需要在我们的依赖之中安装 uView UI


yarn add uview-ui

// 或者使用下面这个 
yarn add uview-ui@2.0.36

这里你如果你已经安装并且使用了这个ui组件库,这里我们可以看到,官方也给我们提供了一个监测版本的代码

版本查询

我们可以简单打印一下查看一下我们本地的版本

// 通过`console.log`打印的形式
console.log(uni.$u.config.v);

// 可以查阅uView的配置文件得知当前版本号,具体位置为:
/uview-ui/libs/config/config.js

当然,也可以直接在我们的依赖文件夹进行查看,这边可以看到我们的依赖已经安装成功了这会!

image.png

(2)导入并注册 uView UI

接下来我们在项目的入口文件 main.js(或 main.ts)中导入 uView UI 并注册

import Vue from 'vue';
import App from './App.vue';
import uView from 'uview-ui';

Vue.use(uView);

const app = new Vue({
  ...App
});

app.$mount();

(3)在我们的页面之中简单使用 uView UI 组件试试,看我们是否生效

这里我就选择了首页作为简单的尝试

扩展组件的使用

uni-icons的使用

官方的地址:

https://uniapp.dcloud.net.cn/component/uniui/uni-icons.html

在插件市场选择导入,然后确认

选择我们想要导入的项目地址,直接确定

uni-datetime-picker 日期选择器的使用

在插件市场选择导入,然后确认

选择我们想要导入的项目地址,直接确定

image.png

下载完毕以后,这里日志会有一个提示

image.png

直接页面之中使用

<uni-datetime-picker type="datetime" v-model="datetimesingle" @change="changeLog" />

引入对应的参数和方法

const datetimesingle= ref('');

const changeLog = (e) => {
         console.log('change事件:', e);
}	

然后我们预览一下,现在效果已经出来了!

image.png

点击确认,这里我们已经拿到了我们的时间

change事件:2024-08-15 11:01:43

接下来就可以进行其他的操作了 !

3、问题处理

(1) uview显示位置处理

这里运行以后显示我们页面错误,我们查看处理一下。

这里报错:Vue.filter is not a function

image.png

这里我猜测是我写的位置不正确,我们稍微改一下然后查看一下效果!
image.png

这边我们更改了位置以后报错已经消失了,但是我们的uview好像也没有生效!

这里我们换一个卡片部分的样式进行尝试一下

这边我们可以看一下正常的应该是什么样子
image.png

然后我们放到文章之中尝试:

<uni-section title="自定义卡片内容" type="line">
<uni-card title="基础卡片" sub-title="副标题" extra="额外信息" padding="10px 0" :thumbnail="avatar" >
        <template v-slot:title>
<uni-list>
        <uni-list-item :show-switch="true" title="自定义标题"/>
</uni-list>
</template>
<image style="width: 100%;" :src="cover"></image>
<text class="uni-body uni-mt-5">卡片组件通用来显示完整独立的一段信息,同时让用户理解他的作用。例如一篇文章的预览图、作者信息、时间等,卡片通常是更复杂和更详细信息的入口点。</text>
<view slot="actions" class="card-actions">
<view class="card-actions-item" @click="actionsClick('分享')">
        <uni-icons type="pengyouquan" size="18" color="#999"></uni-icons>
        <text class="card-actions-item-text">分享</text>
</view>
<view class="card-actions-item" @click="actionsClick('点赞')">
        <uni-icons type="heart" size="18" color="#999"></uni-icons>
        <text class="card-actions-item-text">点赞</text>
</view>
<view class="card-actions-item" @click="actionsClick('评论')">
        <uni-icons type="chatbubble" size="18" color="#999"></uni-icons>
        <text class="card-actions-item-text">评论</text>
</view>
        </view>
</uni-card>
</uni-section>

这边我们可以看到并未生效
image.png

setConfig配置uview-ui

这边我思考了一下,感觉很有可能是我的配置没有配置官方建议的setConfig的方式,这边我们进行一下更改!

uni.$u.setConfig({
// 修改$u.config对象的属性
config: {
        // 修改默认单位为rpx,相当于执行 uni.$u.config.unit = 'rpx'
        unit: 'rpx'
},
// 修改$u.props对象的属性
props: {
        // 修改radio组件的size参数的默认值,相当于执行 uni.$u.props.radio.size = 30
        radio: {
                size: 15
        }
        // 其他组件属性配置
        // ......
}
})

尝试以后:没有效果!

配置SCSS

查看官网可以发现,uView 依赖 SCSS,您必须要安装此插件,否则无法正常运行。

接下来我们就尝试安装一下这些依赖试试

yarn add sass -D 
yarn add sass-loader@10.1.1 -D
yarn add @dcloudio/uni-ui

这里我们先运行看看,这边可以看到我们的报错已经解决了
image.png

这边我们可以看到,没有任何的问题出现,接下来我们尝试使用一下,先随意丢个骨架屏进去看看效果
image.png

<template>
	<up-skeleton
	    rows="3"
	    title
		loading
	></up-skeleton>
</template>

没有效果,这里我们再配置一下相关需要的东西

yarn add dayjs
yarn add clipboard

配置easycom

再次运行项目,依旧报错,那么我们尝试配置一下 easycom

查看官网可以发现,我们需要去配置easycom

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

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

在pages.json中配置easycom组件模式

image.png

{
        "easycom": {
                // 注意一定要放在custom里,否则无效,https://ask.dcloud.net.cn/question/131175
                "custom": {}
        },
        // 此为本身已有的内容
        "pages": []
}

这里还是没生效,然后清理缓存,关闭项目,重新下载依赖,再次启动,ok!

再次跑一下我们项目!OK,愉快的开发吧!
image.png

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。