| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 《微信小程序-基础篇》什么是组件化以及如何封装小程序组件 -> 正文阅读 |
|
[移动开发]《微信小程序-基础篇》什么是组件化以及如何封装小程序组件 |
前言在上一章节中我们了解了小程序的一些 基本语法,如果小伙伴了解过Vue的话,真的会发现这些语法和Vue中的一些语法用法非常相似,尤其是列表渲染,条件渲染等等被Vue称之为指令的东西,毕竟到了现代的前端领域,MVVM的开发模式、开发效率已经比原来的MVC胜出太多了; 阅读对象与难度本文难度属于:初级,通过本文,你可以了解到组件化的意义是什么,并且在小程序中如何定义一个组件,以及针对在上一盘博文中留下的思考题 组件化Button进行编写与分享; 组件化的意义先来说说,为什么要组件化开发吧,毕竟我们一直在说组件化、组件化,如果意义都不清楚,那么开发的时候就会相当的被动,不会主动的去思考为什么要这么干,有什么好处; 场景在项目开展的前期,经由设计组的设计你拿到了 一版设计稿,作为前端开发的你必须对这些设计稿进行严格的评估,评估其所有设计的功能、交互 是否都可以实现,当你评估完成之后,发现其中超过 一半以上的界面 都存在一个或几个的按钮,这些个按钮 最大的区别就是不同状态时颜色不一致,成功使用绿色,失败使用红色,此时怎么办,一般而言会有两种做法:
如果是你,你选择哪个?想了想,貌似都可以,按照组件化的逻辑,那肯定是选第二个,但是选第二个真的合适吗,先不说实现难度,就说为了实现其功能,需要花费比较多的时间在这个基础组件上开发,而选择第一个则已经直接开发页面了,进度上遥遥领先,每个页面自己写样式也只需要完成一个,之后拷贝代码就像行了,到这里貌似没有一定要使用组件化开发的意义; 接着,你安排好计划并根据计划开发,当完成了70%之后,领导说他像看看开发进度与效果,体验感受一下用户体验,那没办法,你这个时候就需要带着你的项目进行演示汇报,汇报到一半,领导突然说,按钮的颜色不合适,绿色不能代表成功,要改成蓝色,红色也不能代表失败,要改成边框灰色,背景色改为更符合领导审美的透明… 优点看完上面那个场景,是不是觉得组件化的优点还是挺明显的,简单的说有以下几点:
优点还不止这些,还包括控制了 代码体积,提高了开发效率,甚至是为了我们能尽快改完问题,开发完功能早点下班过生活; 小程序的组件化了解了组件化开发的优势,那么接来下就聊聊小程序中如何组件化开发,首先当然是要了解官方文档,小程序关于组件化开发的文档在这里:《小程序中的自定义组件》,有兴趣的小伙伴可以先去看看官方如何描述以及使用的; 创建自定义组件在小程序中自定义组件的创建类似于创建页面,它同样是由四个文件组成,分为是:json、wxml、wxss、js文件,但是与页面区别的是,它必须在json中声明,这是一个组件,声明代码如下:
另外,js中也不再是标准的小程序模版,而是使用到了一个函数Component,这个函数有小程序官方提供,并不需要引入,大致用法如下:
properties 类似与Vue中的props,代表父组件传递到自组件的值,data是存储数据的地方,methods则是编写事件的位置,假设现在要给当前这个button组件添加一个size属性,那么怎么写?其实就可以写在properties里
而在wxml、wxss和js文件中的写法与界面一致,没有什么特殊的地方 引入自定义组件有定义、编写自定义组件的地方,那必然也有引入使用的地方,假设,我们现在需要在一个名为welcome的页面里引入button组件,那么该怎么引入?其实很简单,找到对应页面的json文件,在其usingComponents属性里引入就行,值得注意的是,组件名就是usingComponents里的key,直接看例子吧
就这么简单,接着就是使用
Button组件既然已经知道了组件如何创建以及引入,那么找个简单的,实践一下,题目就是上篇中的Button组件,假设现在我们有以下这些需求:
接下来就是一起实现这三个需求的Button 分析开始前,我们先简单分析一下,确认一下我们期望的功能和用法,大致上我们期望用法如下
long属性
type属性
通过分析发现,这几个属性其实 都是在控制样式,size是根据传入的关键词添加对应的大小样式,long属性则是在控制button的width是否是100%,type则是控制button的背景色、字体颜色; WXMLwxml其实相对比较简单的,通过需求我们知道,传入的属性就是在改变Button的样式
没错,就这么简洁,我们在预设了3个样式,其中size和type直接对样式进行了一个拼接,至于long我们则是通过三元表达式来判断is-long这个属性要不要添加; WXSSwxss或者说css,这里面就要比wxml中复杂一点,毕竟所有的样式都是需要实现的,大致如下
JS就这个Button而言,js文件中没有什么特殊的逻辑处理,仅仅只有一个属性的传递,因此也不复杂
到这里,这个组件基本就完成了,引入页面测试一下发现没啥问题~ 小结本文主要分享了,组件化的意义,很多时候组件化的开发可以提高开发效率(包括需求临时变更等问题导致),之后分享了在小程序中我们该如何定义一个组件并被其它业务页面引入使用,最后,我们实践了一个Button组件,并定了3个较为简单的需求来实现; |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 3:03:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |