微信小程序开发完整操作流程(微信小程序开发之组件设计规范)
类别:编程学习 浏览量:1007
时间:2022-01-25 00:22:14 微信小程序开发完整操作流程
微信小程序开发之组件设计规范微信小程序组件设计规范
组件化开发的思想贯穿着我开发设计过程的始终。在过去很长一段时间里,我都受益于这种思想。
- 组件可复用 - 减少了重复代码量
- 组件做为抽离的功能单元 - 方便维护
- 组件作为template使用,可以方便计算各种属性而不是在wxml引入wxs
在日常的小程序开发组件过程中,我一般会遵循如下几个规则:
1.样式独立 & 依赖独立
在组件开发过程中,组件可以依赖于全局样式,组件在引入时,使用该页面样式和全局样式共同渲染。
options: { addGlobalClass: true, multipleSlots: true }
但是基于组件的可移植性考虑,建议每个组件配置为不依赖于全局样式。
options: { addGlobalClass: false, multipleSlots: true }
选择在每个组件的wxss配置该组件所需的样式。
组件开发过程中,组件可以引入app.js,基于
const app = getApp();
但是基于方便移植的角度考虑,组件中获取全局数据使用storge更为合适。
即使依赖于某些js文件,可将该文件放入组件目录下并引入。
属性值设置侦听器
组件可以接收页面传入的值,但是组件内数据格式或许不匹配页面展示需求,需要做某些调整,这些调整建议在组件内实现。组件内数据的修改不会影响到页面内数据。
properties: { active:{ type:Number, observer:function(newVal,oldVal){ //对数据进行预处理 } } }
3.所有使页面栈发生变动的操作都交给页面完成
在A页面内点击组件C会跳转到E页面
在B页面内点击组件C会跳转到F页面
这种情况下可以将点击事件交给页面来处理,组件仅做一个事件通知。具体跳转事件交给页面内函数实现。
组件内使用:
this.triggerEvent('click',args)
页面A:
<c-component bind:click="navtoPageE" />
页面B:
<c-component bind:click="navtoPageF" />
组件内尽量不要嵌套组件
曾在组件中使用一个 loading组件,但是通过参数控制该loading组件展示,出现无法隐藏问题时,无法定位到具体组件。
组件定义统一的class
这是为了方便统一调用组件中某个方法,作为模板使用常使用到该方法。
let acmp = this.selectAllComponents('.card') acmp.forEach(function (ele, index) { ele.closeActionBar(); })
使用组件的生命周期
组件支持生命周期,某些只需要初始化一次的数据,或者计数器函数,请在attached内完成
lifetimes:{ attached(){ this.setData({ openid:app.globalData.openid }) } }
参考文档
微信小程序--页面与组件之间如何进行信息传递和函数调用
微信小程序--关于加快小程序开发的几个小建议
总结
到此这篇关于微信小程序开发之组件设计规范的文章就介绍到这了,更多相关微信小程序组件内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- 微信小程序语音录入(微信小程序使用同声传译实现语音识别功能)
- 微信小程序获取时间(微信小程序wxs日期时间处理的实现示例)
- 宝塔小程序制作(宝塔面板微信小程序使用图文教程)
- 微信小程序做计算器(微信小程序实现计算器小功能)
- 微信小程序签名怎么操作(微信小程序实现简单手写签名组件的方法实例)
- php开发微信小程序后台步骤流程(基于PHP实现微信小程序客服消息功能)
- 微信小程序计时器(微信小程序实现简单的计算器功能)
- 微信小程序抽签如何抽中(JavaScript实现班级抽签小程序)
- 微信小程序转盘动画效果(微信小程序实现摇筛子效果)
- 微信小程序可以用h5开发不(微信小程序webView嵌入H5的方法实例)
- 微信小程序scrollview 截图(微信小程序scroll-view不能左右滑动问题的解决方法)
- 微信小程序canvas 动画(微信小程序使用canvas绘制钟表)
- 微信小程序存token(小程序开发实现access_token统一管理)
- 微信小程序静态页面详情(微信小程序基础教程之echart的使用)
- 微信小程序function怎么使用(微信小程序在{{ }}中直接使用函数的方法示例)
- 微信小程序怎么绕过人脸的(详解微信小程序官方人脸核身认证)
- 鞠婧祎和杨紫两种风格的女生,你心里谁比较美(鞠婧祎和杨紫两种风格的女生)
- 三千年第一美女鞠婧祎出演白素贞pk杨紫,颜值胜赵雅芝王祖贤(三千年第一美女鞠婧祎出演白素贞pk杨紫)
- 成都轨道交通13号线一期工程最新进展(成都轨道交通13号线一期工程最新进展)
- 越南没事(越南没事情做)
- 重庆旅游攻略(重庆旅游3-4天攻略最佳线路)
- 周杰伦演唱会门票(周杰伦演唱会门票多少钱一张2023)
热门推荐
- php脚本通过文件路径批量上传文件(php遍历目录下文件并按修改时间排序操作示例)
- php上传文件的要求(PHP大文件分块上传功能实例详解)
- web服务器架构(常用的WEB服务器简介)
- mysql基本查询方法(MySQL 重写查询语句的三种策略)
- 如何用python人脸识别(Python学习笔记之视频人脸检测识别实例教程)
- mysql首次登录不上怎么办(Mysql匿名登录无法创建数据库问题解决方案)
- php中字符串反转的函数(php常用字符串查找函数strstr与strpos实例分析)
- linuxnginx常用状态命令(nginx常用命令放入shell脚本详解)
- nginx配置详解(nginx请求限制配置方法)
- 如何查看mysql执行计划(到底什么是Mysql执行计划?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9