当前位置: 首页 > news >正文

微信小程序代码优化3个小技巧

抽取重复样式

样式复用

我们会发现很多时候在开发的过程中会存在多个页面中都用到了同样的样式,那么其实之前有提到过,公用样式可以放在app.wxss里面这样就可以直接复用。

如:flex布局的纵向排列,定义在app.wxss里面

.flex-col{display: flex;flex-direction: column;
}

然后其他页面可以直接使用组合样式:

b7df1202307271734163527.png

通用的写在app.wxss里面,个性化的在具体页面编写。

以上是样式的复用,还有一种是样式中常用的具体属性值设置成变量,便于复用。

属性复用

使用CSS自定义属性(变量)
声明一个自定义属性,属性名需要以两个减号(–)开始,属性值则可以是任何有效的CSS值。

page {--color:#F8D300
}

注意:需要在app.wxss定义,这样所有页面的wxss才能使用。
使用一个局部变量时用 var() 函数包裹以表示一个合法的属性值:

.content-btn {background: var(--color);
}

同样的除了颜色,还有一些统一的边距、大小、等等属性都可以。

抽取重复方法

做过小程序开发的同学应该都知道都知道app.js是可以全局共享的。那么这个时候如果有多个页面都需要用到的方法和属性就可以全部写在app.js里面。
如下所示:

// app.js
App({randomMsg(){let msgs = this.globalData.msgslet msg = msgs[Math.floor(Math.random() * msgs.length)];return msg},globalData: {msgs:["你好吗?","加油鸭!","早点睡!","奥利给!","别熬夜!"]}
})

页面使用方法:

const app = getApp()Page({onLoad: function (options) {console.log(app.globalData)console.log(app.randomMsg())},
})

适用场景:在小程序里面共享都是一次应用生命周期中会有多个页面使用到的数据,小程序重启后将全局变量会重新初始化。

安装第三方包

除了可以提取方法到utils里面达到了便于复用。有时候我们维护常用工具类成本很高,而且我们要去深入去了解里面的API,这个时候我们用别人维护的工具类。

这个时候我们就会去github查找相关的开源库,找到合适的就需要进行使用。使用通常有两种方式:

  1. 直接复制原来到自己的项目中
  2. 使用 npm 包进行远程引用

具体引用可以查看我之前写过的文章:《微信小程序如何引入npm包?》

总结

  1. 无论是 css 样式还是 js 方法都要尽可能的抽象复用,这样才能提升整体效率。
  2. 在优化的过程中先局部再整体,没有最好只有更好,基于业务场景来做优化。
  3. 常用的工具类就不需要重复发明轮子,学会使用已有第三方开源库可提升效率。

 

http://www.lryc.cn/news/102433.html

相关文章:

  • 某行动态cookie反爬虫分析
  • 恒运资本:A股、港股全线爆发,沪指突破3300点,恒指重返2万点上方
  • Rust vs Go:常用语法对比(十二)
  • jmeter接口测试、压力测试简单实现
  • PysparkNote006---pycharm加载spark环境
  • 19套项目实战系列--Spring Cloud Spring Boot(整套源码)
  • TCP/IP协议详解(二)
  • Linux6.2 ansible 自动化运维工具(机器管理工具)
  • 前端面试题 —— React (二)
  • 【分享帖】LCD的MCU接口和SPI接口详解
  • 【Java】使用@Expose注解和excludeFieldsWithoutExposeAnnotatGson()方法将toJson()过程的部分字段忽略
  • 移动硬盘不显示怎么办?正确解决方式看这里!
  • MySQL 5.7.39 关于时间精度
  • 宝塔设置云服务器mysql端口转发,实现本地电脑访问云mysql
  • centos下安装ftp-读取目录列表失败-
  • 0101sub-process /usr/bin/dpkg returned an error code-dpkg-linux问题集
  • 流控平台Sentinel搭建和接入教程
  • 使用 docker 一键部署 MongoDB
  • 【深度学习】Inst-Inpaint: Instructing to Remove Objects with Diffusion Models,指令式图像修复
  • 创建维基WIKI百科和建立百度百科有何不同?
  • Python小红书旋转验证码识别
  • ELK搭建
  • webyog最新社区版免费版下载地址
  • [SQL挖掘机] - 窗口函数 - dense_rank
  • stable diffusion
  • web3行业有哪些职业发展路径?
  • MATLAB算法实战应用案例精讲-【自动驾驶】相控阵天线方向图
  • ALLEGRO之View
  • 【打造超酷的GitHub主页】
  • Transformer 论文学习笔记