微信小程序开发(九):使用扩展组件库

2023-11-10

前端开发中离不开各种组件库,我最先接触的组件库还是Bootstrap,后来工作中又陆续使用了inoicng-zorro等各种不同的库。

在微信小程序开发中也有多种组件库,这里记录其中几种不同组件库的使用方法。

WeUI

这是微信官方推出的一款和微信原生视觉体验一致的UI组件库,可以通过useExtendedLib的方式引入,也可以通过npm方式使用。使用方式方法简单。

第一种:userExtendedLib方式

1、在app.json文件中设置启用weiui,

{
  "pages":[
    "pages/index/index"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle":"black"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json",
  
//在这里启用
  "useExtendedLib": {
    "weui": true
  }
}

2、在目标页面的page.json文件中引入要使用的weui组件

{
  "usingComponents": {
    "mp-icon": "weui-miniprogram/icon/icon"
  }
}

使用过小程序自定义组件功能的同学应该知道, 这里要在json文件的usingComponents属性中引入相应组件,其中组件的路径需要保证准确,比如我这里用的icon组件就位于'weui-miniprogram/icon/icon'路径下,这也是使用扩展库的方式引入weui组件之后默认的路径。

3、在模板文件中使用组件

<mp-icon type="field" icon="add" color="black" size="{{25}}"></mp-icon>
<mp-icon icon="add" color="black" size="{{25}}"></mp-icon>

完成这三步组件就能正常渲染了。

第二种:使用npm方式

1、使用npm 下载并安装weui

npm install weui-miniprogram --save

npm指令执行完成后,可以看到在项目根目录下已经存在一node_modules文件夹,里面有一个weui-miniprogram。WeUi的框架资源都在weui-miniprogram目录中了。
在这里插入图片描述
2、构建npm
在小程序开发工具栏-点构建npm后,根目录生成miniprogram_npm文件夹。
在这里插入图片描述
我在这一步遇到了一个错误,当我点击构建npm之后,开发工具给我提示了一条错误信息:
在这里插入图片描述
错误信息提示我,在我的项目根目录内没有找到可构建的NPM包,但是我很确定我是已经下载了NPM包的(就是第一步截图中的weui-miniprogram)。
经过一番调查发现,我的项目中缺少了使用npm的一个关键文件:package.json, npm CLI需要通过它来识别项目并了解如何处理项目的依赖关系。
解决方法:
在npm install 之前,使用npm init指令先初始化项目,这样就会生成一个对应的package.json文件,有了这个文件,npm就知道如何处理项目文件之间的依赖关系了。
在安装的过程中,所有配置项都选择默认,确定后就会生成一个最简的package.json文件:

{
  "name": "mydemo",
  "version": "1.0.0",
  "description": "",
  "main": ".eslintrc.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "weui-miniprogram": "^1.2.4"
  }
}

在这里插入图片描述
现在再去执行npm构建,就可以构建成功了。
在这里插入图片描述

3、在 app.wxss 里面引入 weui.wxss,引入的时候要注意文件路径,路径错误会导致控制台报错。

@import '/miniprogram_npm/weui-miniprogram/weui-wxss/dist/style/weui.wxss';

只要到这一步能够操作正确,接下来在页面中使用组件就和userExtendedLib 方式一样了。

4、在目标页面的page.json文件中引入要使用的weui组件

{
  "usingComponents": {
    "mp-icon": "weui-miniprogram/icon/icon"
  }
}

4、在模板文件中使用组件

<mp-icon type="field" icon="add" color="black" size="{{25}}"></mp-icon>
<mp-icon icon="add" color="black" size="{{25}}"></mp-icon>

另一个常用的组件库:Vant Weapp

Vant Weapp是我在开发中也经常会用到的一款小程序UI组件库,它是有赞移动端组件库 Vant 的小程序版本。
使用方式和weui npm引入的方式一样,首先使用npm i @vant/weapp -S --production命令下载依赖包,下载完成后同样使用构建npm功能,构建完成后在小程序根目录的miniprogram_npm文件夹下可以看到对应的文件,这里名字叫做@vant
在这里插入图片描述

引入组件:

"usingComponents": {
  "van-button": "@vant/weapp/button/index"
}

同样的,在页面中使用组件之前,需要先引入对应组件,我们可以在小程序全局配置文件app.json或者在对应的page.json中引入用到的组件就可以使用了!

分析一下两种组件库的优缺点吧

weui是微信推出的官方组件库,可以通过配置useExtendedLib的方式直接使用,并且这种使用方式组件不会占据代码包的空间,这样我们就可以增加更多的业务代码(毕竟小程序后台对单个代码包的大小是有严格限制的)。但是确定也是很明显的,使用过程中明显感觉到weui组件库中的元素并不是很多,很多地方需要开发者自己自定义组件,并且组件的风格我也不是很喜欢。

以Vant Weapp为例的的第三方组件库,组件更加丰富,而且现在网上这么多组件库,总有一款符合开发者的心理预期。

如果期望更丰富和多样化的组件,并且不嫌弃npm引入的方式占据太多代码空间的话,我更喜欢使用第三方组件库。(实在没办法的话,只能使用分包加载的办法了。。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序开发(九):使用扩展组件库 的相关文章

随机推荐

  • MAC 查看程序安装目录

    查看程序安装目录 ps ef grep 程序名字 e g ps ef grep matlab
  • python中math库最大值_Python之math库和random库

    import math 相关函数 math ceil x x向上取最近的整数 然后返回这个整数 例 ceil 2 1 3 math degrees x 将x从弧度转换成角度 math fabs x 将x看作一个浮点数 返回它的绝对值 例 f
  • memcach基础知识--1

    memcache 1 memcache数据访问模型 首次访问从数据库查询 这是memcache 的模型 我们可以通过整合spring 来实现自己的数据同步机制 2 memcache 是相互之间乎不通信的分布式 memcache的分布式是完全
  • 电脑的任务栏卡,但是桌面可以正常使用

    这个的任务栏卡的原因可能如下 1 电脑后台运行过多的任务 占用过多c盘资源 导致任务栏卡死 解决方法 关掉多余的任务栏 2 也有可能是因为自己的windows更新 更新之后 任务栏 gt 右键 gt 资讯与兴趣 因为这个资讯与兴趣导致的任务
  • Python项目:The Ship Rendezvous Problem,利用贪心算法解决船舶交会问题

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 Python利用贪心算法解决船舶交会问题 1 Introduction 2 Python Task Greedy Heuristic for the SRP Function
  • TCP/IP协议基础知识

    作者 QQ群 852283276 微信 arm80x86 微信公众号 青儿创客基地 B站 主页 https space bilibili com 208826118 参考 TCP IP详解卷1 协议 网络七层协议 Wireshark 分析p
  • E58F8D476F6F676C65E5B0B1E698AFE58F8DE4BABAE7B1BB

    111001101011001110111110111001101011100010101101111001101010111010001010111010011000000010010100111001001011100010000000
  • 二值图像与灰度图像的区别

    二值图像 二值图像是指每个像素不是黑 就是白 其灰度值没有中间过渡的图像 这种图像又称为黑白图像 二值图像的每一个像素只有两个值0和1 其中0表示黑色 1表示白色 所以二值图都是长这样的 因为二值图每个像素只有两个值 所以每个像素只需要1b
  • 【整理】BIOS、BootLoader、uboot对比

    bios BIOS是英文 Basic Input Output System 的缩略语 直译过来后中文名称就是 基本输入输出系统 其实 它是一组固化到计算机内主板上一个ROM芯片上的程序 它保存着计算机最重要的基本输入输出的程序 系统设置信
  • Flutter ListView ListView.build ListView.separated

    理解为ListView 的三种形式吧 ListView 默认构造 但是这种方式创建的列表存在一个问题 对于那些长列表或者需要较昂贵渲染开销的子组件 即使还没有出现在屏幕中但仍然会被ListView所创建 这将是一项较大的开销 使用不当可能引
  • 在多态中,析构函数中的virtual与override用法介绍

    在C 中 析构顺序总是先析构派生类 再析构基类 介绍 如果基类的析构函数没有声明为virtual 当使用基类指针 或引用 删除派生类对象时 可能只会调用基类的析构函数 而不会调用派生类的析构函数 这会导致派生类的资源没有被正确释放 从而产生
  • JavaScript reduce()方法详解与实现

    使用方法详解 reduce 方法在数组的每个元素上依次执行传入的 reducer 回调函数 并传入上一次计算的返回值 第一次运行回调函数的时候没有 上一次计算的返回值 调用reduce 方法的时候可以传一个初始值来代替 否则 数组的第一个元
  • MNIST数据集转换为图片数据集的样例程序

    一 编写背景 因为需要对接一个官方的编程API 本人需要自己按其要求搭建一个神经网络 以尝试调用某模块的工作 我参考了Tensorflow的参考书了解了MNIST数据集 然后我准备把MNIST数据集转换为图片格式 以适应API的要求 同样
  • 单片机笔记八:华大单片机报错(未定义__WEAKDEF)

    最近开始用华大的单片机 按照官方的例程做了一个工程模板 结果直接编译不过 而且一口气有30个错误 提示内容如下 WEAK void I2c0 IRQHandler void mcu common interrupts hc32l13x c
  • JavaSE——StringBuffer与StringBuilder拼接字符串详细解释

    目录 一 基本了解 1 1使用字符串频繁拼接会出现什么问题 1 2 了解StringBuffer 1 3 了解StringBuilder 1 4 StringBuffer与StringBuilder的区别 二 StringBuffer的使用
  • 额外函数_强化学习奖励函数塑形简介(The reward shaping of RL)

    RL背景 强化学习解决定义在马尔科夫过程 Makov Decision Processing MDP 下的连续决策问题 其中经典算法Q learning使用如下方程更新 值 策略 在状态s下采取行为a后的累计回报数学期望 Cumulated
  • C/C++使用libcurl库发送http请求(get和post可以用于请求html信息,也可以请求xml和json等串)

    C C 使用libcurl库发送http请求 get和post可以用于请求html信息 也可以请求xml和json等串 C 要实现http网络连接 需要借助第三方库 libcurl使用起来还是很方便的 环境 win32 vs2015 如果要
  • python基础(1)--对象、类、方法、库、函数

    几个概念的简单辨析 对象与类 一个独立的事物称为一个对象 对象具有一定的属性和功能 对象 属性 特征 方法 行为 类是对象的抽样化 类是对象的实例化 方法与函数 函数 通过 函数名 的方式进行调用 内置函数 匿名函数 递归函数 自定义函数等
  • R语言的排列组合函数:排列函数(permutations)和组合函数(combinations)

    R语言的排列组合函数 排列函数 permutations 和组合函数 combinations 排列函数 permutations 和组合函数 combinations 是R语言中用于处理排列和组合问题的常用函数 它们可以帮助我们生成和计算
  • 微信小程序开发(九):使用扩展组件库

    前端开发中离不开各种组件库 我最先接触的组件库还是Bootstrap 后来工作中又陆续使用了inoic ng zorro等各种不同的库 在微信小程序开发中也有多种组件库 这里记录其中几种不同组件库的使用方法 WeUI 这是微信官方推出的一款