做网站要多少回扣,app注册拉新平台,廊坊哪里做网站,如何做网站接口我在小程序工程化方面的一些实践
早期做小程序时#xff0c;还是原始时代#xff0c;项目结构混乱#xff0c;各种冗余代码#xff0c;每次迭代时由于高昂的维护成本#xff0c;极为头疼。遂在一次次的更迭中完成了基础组件的初版#xff0c;极为酸爽。从此之后在当时的…我在小程序工程化方面的一些实践
早期做小程序时还是原始时代项目结构混乱各种冗余代码每次迭代时由于高昂的维护成本极为头疼。遂在一次次的更迭中完成了基础组件的初版极为酸爽。从此之后在当时的情况下只需要关注于业务对于通用的该封装封装该分层分层该解耦解耦也出了一款独立于业务之外的基础组件。洋洋自得。
后来入职新公司遇到的问题也是同样的在工作之余计划将此前抽象的基础组件集成进来发现了不少问题其中之一就是上手极为不易在这个过程中又有一些改进。
更迭
此前公司的小程序开发模式是 此前的问题对于页面的创建是极为的不便对于代码的调试也不方便代码结构也没有进行分层。
接入基础组件之后目前的小程序优化为以下结构 相比之前添加了一层隔离层好处与未来的规划可以下图解释 当前小程序此前就采用glup进行构建的于是我在这个基础之上添加了一些任务使用工具自动引入基础组件而对编写上层业务代码来说是无感知、无侵入的还可以按照之前的原生方式写这是它的一大优势。
目前还有的问题是页面之间的Intent通信耦合还是很严重解决思路为可以提供一个中介者来完成不过这个对目前来说问题不大。
目前已经完成的功能有
开发者模式可以用来切换环境目前有生产预发测试。对App的注册进行了代理可以在基础层完成一些初始化工作。目前有监控的初始化。对每个Page的生命周期与setData方法做了代理setData在编译时替换为了setMFData。setMFData目前对setData的调用做了节流。可以提升页面的渲染性能。将运行时环境所提供的方法挂载到了每个页面实例下。不需要再通过wx.xx调用可直接通过this.xx调用。这样的好处在于使业务代码与运行时api进行了隔离也方便使用。对此前的网络层再做了一层隔离这一层只是用来承载网络访问并桥接了网络监控的能力。而上层会做更多的业务处理。
将来可以做的事
可以采用类vue的编写方式将4个文件合并至一个文件扩展名可以为*.mp。可以写一个脚手架用来创建*.mp文件。需要写一个mp-loader将*.mp转换为对应的微信文件。可以写一个转换工具将之前的代码合并至一个*.mp文件中。
*.mp文件的结构可以如下
// *.mp
// !-- wxml内容 --
templateview idpage/view
/template// !-- js内容 --
scriptPage({data: {},onLoad() { },reload() {},onUnload() {}})
/script// !-- css内容 --
style#page {padding: 40rpx 50rpx;text-align: center;}
/style// !-- 小程序特有的配置 --
config{navigationBarTitleText: 小程序开发者}
/config以上就是我目前可以根据当前的一些问题进行的一些探索这也是一个循序渐进的过程将来在业务需要时也会催生出更好的方案权当给大家分享一个实践的思路。