01通过npm的方式安装uView组件库

uView依赖SCSS,您必须要安装此插件,否则无法正常运行。
如果您的项目是由HBuilder X创建的,
相信已经安装scss插件,
如果没有,请在HX菜单的 工具->插件安装中找到"scss/sass编译"插件进行安装,
如不生效,重启HX即可
然后执行 npm install uview-ui
这样就可以下载组件库了 除了通过npm的方式。
也可以通过下载的方式进行安装。[我推荐使用下载的方式进行安装]
下载的方式进行安装需要注意的是
在项目根目录的pages.json中去设置是不同的。
并且需要你调整一下目录结构哈

说明你已经安装了Scss了

02引入和注册uView

//在main.js中引入,
//需要注意注意这两行要放在import Vue之后。
import uView from "uview-ui";
Vue.use(uView);

03引入uView的全局SCSS主题文件

在uni.scss文件送引入
@import 'uview-ui/theme.scss';

04引入uView基础样式

在App.vue中【首行】的位置引入,
为什么是首行,因为你后面的样式可以覆盖uView组件内置的样式
注意给style标签加入lang="scss"属性
否者会出现问题,我已经已经踩过坑了。
<style lang="scss">
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
@import "uview-ui/index.scss";
</style>

04置easycom组件模式

此配置需要在项目根目录的pages.json中去设置
{ // 添加组件配置模式
"easycom": {
//这是通过npm的方式进行配置的
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" //这是通过下载到本地的方式进行配置的
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
//这两者是有区别的,不知道各位小伙伴清楚不?
}, // 下面的就是你自己的内容
"pages": [
// ......
]
}

05 使用组件CountDown倒计时

<template>
<view class="">
<u-count-down :timestamp="timestamp"></u-count-down>
</view>
</template> <script>
export default {
data() {
return {
timestamp: 86400,
}
}
}
</script>



说明组件使用成功了

使用uni-app开发小程序的小建议

uni-app官方推荐的是scss。
我们也要积极使用scss.
就不要说你喜欢less。就在项目中使用less了。
虽然这样使用没有什么问题,但是终归是不好的~
uni.scss具有一些特点
1==>无需引入,在uni-app在编译时,
会自动引入声明<style lang="scss"></style>的文件中 2==>定义的scss变量,可以全局使用,比如说定义颜色,尺寸或者变量

关于压缩和发行以及开发

我们都知道小程序预览和发布的主包大小不能够超过2M,
否者真机就无法预览和发布。
有的小伙伴会说,使用uView这个组件库的时候,会不会增加小程序的体积呀?
uView是按需引入的。
在【发行==>为小程序或者为其他类型的时候】
会自动删除我们平时没有使用的组件哈~
需要注意的是:如果你上传小程序的时候,没有点击发行。
那么将不会删除你没有使用到的组件。
所以只要点击了【发行】完全不需要担心小程序的体积太大~ 还有一个点需要注意的是:
在我们调试的时候,也就是开发的时候。
HBuilderX默认是没有对JS进行压缩和去除注释的。【因为为了方便调试】
也没有对组件进行按需引入。
所以在控制台经常会看见这样一句友好的提示:
【运行模式下不压缩代码且含有sourcemap,体积较大;
若要正式发布,请点击发行菜单进行发布】
人家提示在发布的时候==点击发布这样体积会大大的较少~
我们开发的时候,也可以这样处理
HBuilderX 运行->运行到小程序模拟器->勾选 运行时是否压缩代码
MyTip在小程序中,我也不推荐使用很超前的语法
因为语法超前会转化为es5
从而增加代码量~
uni.scss会编译到每个scss文件中(很重要)
这样就可以将重复的颜色定义在一起了

uni.scss这个文件不是那么简单

uni.scss会编译到每个scss文件中(很重要)
我们在uni.scss中所写的所有代码。
会被编译到每一个声明了scss的文件中,
这就意味着.如果我们的uni.scss如果有几百行,大小10k左右.
那么这个10k都会被注入声明scss文件(页面)中。
如果我们的项目有50个页面。你可以算一下
也就是说可能因此导致整体的包体积多了50 * 10 = 500k的大小
是不是很可怕呀。所以这个uni.scss文件尽量不要超过5k。
还有就是如果页面没有样式,就不要去声明
<style lang="scss"></style>它了。
原因你可能也知道了吧~

对于样式覆盖的问题

为了避免样式被用户覆盖或者被污染,
我们会组件或者页面都会给style标签加上scoped属性。 组件
<template>
<view class="zujian"></view>
</template> <style scoped>
.zujian {
background-color: #007AFF;
}
</style> 在页面中更改组件颜色.
我们一般通过v-deep或/deep/指令修改,如下写法
<template>
<my-zujain></my-zujain>
</template> <style scoped>
//这是没有使用scss的写法
::v-deep .zujian {
background-color: red;
}
</style> <style scoped lang="scss">
//这是使用scss的写法
::/deep/ .zujian {
background-color: red;
}
</style>
上面的写法,在App和H5正常的。
但是在小程序上却不正常了。
它要求我们在::v-deep或/deep/前面必须还要有父元素的类名存在
所以我们更改为如下 在小程序上的写法
<template>
<view class="cont-box">
<my-zujain></my-zujain>
</view>
</template> <style scoped>
.cont-box ::v-deep .zujian {
border: 1px solid blue;
}
</style>
这样就可以了,所以我个人推荐使用
在::v-deep或/deep/前面添加有父元素的类名
因为这样可以兼容App和H5和小程序都是正常的

uni-app中使用uView组件库的更多相关文章

  1. uni app中使用自定义图标库

    项目中难免会用到自定义图标,那在uni app中应该怎么使用呢? 首先, 将图标目录放在static资源目录下: 在main.js中引入就可以全局使用了 import '@/static/icon-o ...

  2. rtvue-lowcode:一款基于uniapp框架和uview组件库的开源低代码开发平台

    rtvue-lowcode低代码开发平台 rtvue-lowcode一款基于uniapp框架和uview组件库的低代码开发平台,项目提供可视化拖拽编辑器,采用MIT开源协议,适用于app.小程序等项目 ...

  3. 在vue2.0中引用element-ui组件库

    element-ui是由饿了么团队开发的一套基于 Vue 2.0 的桌面端组件库. 官网:http://element.eleme.io/ 安装 npm i element-ui -S 引用完整的el ...

  4. vue中使用iview组件库实现图片的上传

    vue文件如下: iview中Upload 属性详情 https://www.iviewui.com/components/upload js文件 :

  5. uni app中关于图片的分包加载

    因为在项目中使用了大量的静态资源图片,使得主包体积过大, 而把这些图片全部放到服务器又有点麻烦,就想能不能把图片也分包,但是直接放在分包下的话导致图片资源找不到了, 在社区中看到大佬分享的十分有用,特 ...

  6. 创建一个自己的Vue UI组件库,并将它发布在npm上

    本文仅限于入门级,没有成规模制作,希望能对你有所帮助. 因为在开发多个项目中可能会用到同一个组件,那么我们通过复制粘贴的形式更新,无异于是笨拙的,我们可以通过上传到npm后,不断迭代npm包来实现更新 ...

  7. 如何快速为团队打造自己的组件库(上)—— Element 源码架构

    文章已收录到 github,欢迎 Watch 和 Star. 简介 详细讲解了 ElementUI 的源码架构,为下一步基于 ElementUI 打造团队自己的组件库打好坚实的基础. 如何快速为团队打 ...

  8. 如何快速为团队打造自己的组件库(下)—— 基于 element-ui 为团队打造自己的组件库

    文章已收录到 github,欢迎 Watch 和 Star. 简介 在了解 Element 源码架构 的基础上,接下来我们基于 element-ui 为团队打造自己的组件库. 主题配置 基础组件库在 ...

  9. 使用VitePress搭建及部署vue组件库文档

    每个组件库都有它们自己的文档.所以当我们开发完成我们自己的组件库必须也需要一个组件库文档.如果你还不了解如何搭建自己的组件库可以看这里->从零搭建Vue3组件库.看完这篇文章你就会发现原来搭建和 ...

  10. Vue3 企业级优雅实战 - 组件库框架 - 11 组件库的打包构建和发布

    回顾第一篇文章中谈到的组件库的几个方面,只剩下最后的.也是最重要的组件库的打包构建.本地发布.远程发布了. 1 组件库构建 组件库的入口是 packages/yyg-demo-ui,构建组件库有两个步 ...

随机推荐

  1. C++学习笔记-Cherno C++系列

    21-23.[Cherno C++]C++中的静态(static) static变量只在编译单元内部链接 静态变量的作用域只在单个文件内 建议:在非特殊情况下,永远使用static定义全局变量以限制作 ...

  2. Java基础 —— 反射

    动态语言  动态语言,是指程序在运行时可以改变其结构(新函数可以引进,已有的函数可以被删除等结构上的变化).如:JavaScript.Python就属于动态语言,而C.C++则不属于动态语言,从反射的 ...

  3. uniapp使用EventBus实现页面间数据传递

    前情 最近在做小程序项目,选用是当前比较火的uniapp技术栈,经常会遇到页面间消息传递的需求. 为什么要这么做? uniapp页面间数据通信方式有很多:通过url传参,状态管理库vuex/pinia ...

  4. JWT相关知识点

    目录 一.jwt介绍和原理 概念 构成与工作原理 1.header 2.payload 3.signature 本质原理 jwt认证算法:签发与校验 签发:根据登录请求提交来的 账号 + 密码 + 设 ...

  5. 【前端】CSS:border

    border 是CSS中用于设置元素边框的. 第一个参数为线的粗细.除了数字型值外,还可以写: thin(细线) medium(中粗线) thick(粗线) 第二个参数是线条样式,可选参数如下: 小圆 ...

  6. Nginx+ModSecurity(WAF) 加强 Web 应用程序安全性

    Nginx 和 ModSecurity 加强 Web 应用程序的安全性 在当今互联网时代,Web 应用程序的安全性变得尤为重要.为了保护应用程序和用户的数据免受恶意攻击和漏洞利用,使用合适的工具和技术 ...

  7. Linux系统安装python3.8与卸载教程

    ln -sf /usr/local/python311/bin/python3.11 /usr/local/bin/python3ln -sf /usr/local/python311/bin/pyd ...

  8. shell中 ${}, ##, %%, :-,:+, ? 的使用

    假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${}分别替换得到不同的值:${file#*/} 删掉第一个/及其左边的字符串:dir1/dir2/d ...

  9. 波折重重:Linux实时系统Xenomai宕机问题的深度定位

    目录 一 前言 二 背景 三 原因分析及措施 硬件原因 应用软件 操作系统 四 分析定位 转机 拨云见雾 irq计数 Schedstat coreclk 现象结论 五 原因一 六 原因二 七 解决 八 ...

  10. Qt/C++通用跨平台Onvif工具/支持海康大华宇视华为天地伟业等/云台控制/预置位管理/工程调试利器

    一.前言 在安防视频监控行业,Onvif作为国际标准,几乎主要的厂商都支持,不仅包含了国内的厂商,也包括主要的国际厂商,由于有了这个标准的存在,使得不同设备不同安防平台之间,能够接入各个厂家的硬件设备 ...