在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: {}
})

  

最新文章

  1. undefined reference to `libiconv_open 无法编译PHP
  2. Windows常用技巧集锦
  3. jQuery 1.10.3 参考手册
  4. 搭建Artifactory集群
  5. flash上传在spring mvc中出现的问题2
  6. 文本框Edit
  7. 多线程计算----pthread
  8. 微信小程序Server端环境配置
  9. ASP.NET Core 快速入门(环境篇)
  10. DBUtils工具类
  11. 基于react可无限向内部添加节点的tree
  12. HashMap TreeMap ConcurrentHashMap
  13. git 报错:error: failed to push some refs to &#39;https://github.com/Anderson-An/******.git&#39;(已解决)
  14. python常用算法实现
  15. schema中字段类型的定义
  16. git push remote: User permission denied
  17. java 连接oracle 进行增删改查
  18. 如何使用科大 mirrors 加速 pip?
  19. 会HTML/CSS就可以轻松创建网站
  20. ubuntu下python在pycharm环境下安装setuptools和pip,和distutils.core

热门文章

  1. C#中继承和多态
  2. OAuth2.0实战:认证、资源服务异常自定义!
  3. 配置yum代理
  4. 数组基础(Excel函数集团)
  5. 如何把整张表格的数据通过form表单的方式传回后台
  6. CF999B Reversing Encryption 题解
  7. 【嵌入式AI】全志 XR806 OpenHarmony 鸿蒙系统固件烧录
  8. centos7使用Dockerfile运行mysql库并初始化数据
  9. 【LeetCode】906. Super Palindromes 解题报告(Python)
  10. B. Petya and Exam