uniapp8-组件库uview-ui与uview-plus的使用(vue3)

uniapp8-组件库uview-ui与uview-plus的使用(vue3)

1、uView的认识

使用uView有哪些好处呢

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

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

官网的相关地址 uviewui.com/components/...

2、安装uView

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

js 复制代码
yarn add uview-ui

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

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

版本查询

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

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

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

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

(2)导入并注册 uView UI

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

js 复制代码
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 组件试试,看我们是否生效

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

3、问题处理

(1) uview显示位置处理

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

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

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

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

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

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

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

js 复制代码
<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>

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

4、setConfig的方式配置uview-ui

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

js 复制代码
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
                }
                // 其他组件属性配置
                // ......
        }
})

尝试以后:没有效果!

5、配置SCSS

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

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

js 复制代码
yarn add sass -D 
yarn add sass-loader@10.1.1 -D
yarn add @dcloudio/uni-ui

6、配置uview-plus

上面的项目我们再次跑了以后发现,官方建议还是更换vue2的版本,因为vue3使用的是uview-plus(uiadmin.net/uview-plus/...%2C%25E5%2585%2589%25E6%2598%25AF%25E8%25BF%2599%25E4%25B8%25AA%25E5%2590%258D%25E5%25AD%2597%25E5%2590%25AC%25E7%259D%2580%25E5%25B0%25B1%25E5%25BE%2588%25E5%2583%258Felement-plus%25EF%25BC%258C%25E5%25A5%25BD%25EF%25BC%258C%25E9%2582%25A3%25E6%258E%25A5%25E4%25B8%258B%25E6%259D%25A5%25E6%2588%2591%25E4%25BB%25AC%25E5%25B0%25B1%25E7%25BB%25A7%25E7%25BB%25AD%25E5%2588%2587%25E6%258D%25A2%25E4%25B8%2580%25E4%25B8%258B%25EF%25BC%258C%25E8%25B8%25A9%25E8%25B8%25A9%25E8%25BF%2599%25E4%25B8%25AA%25E5%259D%2591 "https://uiadmin.net/uview-plus/),%E5%85%89%E6%98%AF%E8%BF%99%E4%B8%AA%E5%90%8D%E5%AD%97%E5%90%AC%E7%9D%80%E5%B0%B1%E5%BE%88%E5%83%8Felement-plus%EF%BC%8C%E5%A5%BD%EF%BC%8C%E9%82%A3%E6%8E%A5%E4%B8%8B%E6%9D%A5%E6%88%91%E4%BB%AC%E5%B0%B1%E7%BB%A7%E7%BB%AD%E5%88%87%E6%8D%A2%E4%B8%80%E4%B8%8B%EF%BC%8C%E8%B8%A9%E8%B8%A9%E8%BF%99%E4%B8%AA%E5%9D%91")

🎈 uview-plus官网

uiadmin.net/uview-plus/...

(1)卸载uview-ui

先把上面我们配置的部分删除了,然后把uview-ui给卸载了

js 复制代码
yarn remove uview-ui

(2)安装uview-plus

安装我们的uview-plus

js 复制代码
yarn add uview-plus

切换了以后还是之前使用方式差不多

js 复制代码
// main.js,注意要在use方法之后执行
import uviewPlus, { setConfig } from 'uview-plus'
app.use(uviewPlus)

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

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

js 复制代码
<template>
	<up-skeleton
	    rows="3"
	    title
		loading
	></up-skeleton>
</template>

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

js 复制代码
yarn add dayjs
yarn add clipboard

(3)在引入uview-plus的全局SCSS主题文件

也就是说:我们应该在项目根目录的uni.scss中引入此文件。

在项目根目录的uni.scss中引入此文件

js 复制代码
/* uni.scss */
@import 'uview-plus/theme.scss'; //注意路径是否正确

5、配置uni-ui easycom

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

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

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

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

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

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

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

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

相关推荐
xiongxinyu105 分钟前
前端无感登录(无感刷新token)
前端·面试
程序猿阿伟6 分钟前
在 CSS 中,怎样有效地优化样式表的加载性能,减少页面加载时间?
前端·css
帅比九日6 分钟前
【前端】面试八股文——输入URL到页面展示的过程
前端·javascript·面试
星殇曦落7 分钟前
web基础与HTTP协议
前端·网络协议·http
CHH543131 分钟前
3D立体卡片动效(附源码)
前端·css·3d·玩转css
戏拈秃笔32 分钟前
前端——在本地搭建Vue单页应用
前端·javascript·vue.js
Elena_Lucky_baby33 分钟前
vue项目创建+eslint+Prettier+git提交规范(commitizen+hooks+husk)
前端·javascript·vue.js
m0_644222611 小时前
HarmonyOS开发探索:自定义键盘-webview
前端·华为·计算机外设·移动开发·harmonyos·鸿蒙开发
铁匠匠匠1 小时前
django学习入门系列之第三点《案例 小米商城二级菜单》
前端·css·经验分享·python·学习·django·前端框架
呀呀呀雅楠?1 小时前
vue3(nuxt3)中使用ref获取不到子组件变量
前端·javascript·vue.js·nuxtjs