微信小程序封装mixins方法
2024-09-01 10:36:56
在app.js中这样引入
import '@src/utils/mixins'
mixins函数如下
/**
* 封装类似vue的混入功能
*/
let native = Page
Page = (obj) => {
let {mixins = []} = obj
let merge = new Merge()
Reflect.deleteProperty(obj, 'mixins')
let pageData = mixins.length <= 0 ? obj : merge.start(obj, ...mixins)
native(pageData)
}
class Merge {
constructor () {}
start (rootObj, ...objs) {
let root = {}
objs.forEach((el) => {
root = Merge.recursive(rootObj,el)
})
return root
}
static recursive = (rootObj,obj) => {
for (let attr in obj) {
if(rootObj[attr] === undefined) {
rootObj[attr] = obj[attr];
} else if (Merge.isObject(obj[attr])) {
Merge.recursive(rootObj[attr],obj[attr])
} else{
rootObj[attr] = obj[attr]
}
}
return rootObj
}
static isObject = (obj) => {
return Object.prototype.toString.call(obj).includes('Object')
}
}
需要混入的文件mixin1.js
module.exports = {
data: {}
}
混入的页面JS文件
import mixins from '@src/mixins/mixin1.js'
Page({
mixins: [mixins],
data: {}
})
最新文章
- undefined reference to `libiconv_open 无法编译PHP
- Windows常用技巧集锦
- jQuery 1.10.3 参考手册
- 搭建Artifactory集群
- flash上传在spring mvc中出现的问题2
- 文本框Edit
- 多线程计算----pthread
- 微信小程序Server端环境配置
- ASP.NET Core 快速入门(环境篇)
- DBUtils工具类
- 基于react可无限向内部添加节点的tree
- HashMap TreeMap ConcurrentHashMap
- git 报错:error: failed to push some refs to &#39;https://github.com/Anderson-An/******.git&#39;(已解决)
- python常用算法实现
- schema中字段类型的定义
- git push remote: User permission denied
- java 连接oracle 进行增删改查
- 如何使用科大 mirrors 加速 pip?
- 会HTML/CSS就可以轻松创建网站
- ubuntu下python在pycharm环境下安装setuptools和pip,和distutils.core