微信小程序封装mixins方法
在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: {}
})
微信小程序封装mixins方法的更多相关文章
- 微信小程序封装storage(含错误处理)
这次给你们安利的是微信小程序封装storage,先说下微信官方的 wx.getStorage({ key:"", success: function (res) { }, fail ...
- 微信小程序数据请求方法wx.request小测试
微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </vi ...
- 微信小程序开发系列教程三:微信小程序的调试方法
微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hel ...
- 微信小程序最新授权方法,getUserInfo
20180511微信小程序正式关闭原先getUserInfo的逻辑 不再允许自动弹出授权框. 方法一: index.wxml(准备一个用于给用户授权的页面,我这里直接用了一个全屏按钮) <vie ...
- 微信小程序——wxParse使用方法
wxParse是一个微信小程序富文本解析组件.现在小程序里面自带了一个<rich-text>组件也能解析富文本,但是表现不尽人意.所以我还是采用的wxParse来解析富文本的. wxPar ...
- 微信小程序节点查询方法:wx.createSelectorQuery()的使用场景与注意事项
小程序由于内置于微信,这使得它有了得天独厚的宣传和使用优势,本着学习的心态,我在官网上看了一遍开发文档,大致得出小程序框架的设计模式与使用注意事项(重点来了,其实开发文档某些方面叙述的并不仔细,甚至存 ...
- 微信小程序 封装请求
在写小程序的时候,每个JS文件都一大堆的请求,看得自己都眼花缭乱,下面看一下怎么对请求方法进行封装. 1,方法封装,在util文件夹下新建文件,创建request.js文件,工具文件,用于对方法封装) ...
- 微信小程序封装自定义弹窗
最近在做小程序的登录,需要同时获取用户手机号和头像昵称等信息,但是小程序又不支持单个接口同时获取两种数据,因此想到自定义一个弹窗,通过弹窗按钮触发获取手机号事件.记录一下. 具体代码如下: 业务代码中 ...
- 微信小程序--数据共享与方法共享
目录 全局数据共享 Mobox npm安装及其注意事项 小程序对 npm 的支持与限制 npm 依赖包的安装与使用 Mobox 1. 全局数据共享 2. 小程序中的全局数据共享方案 3. 使用mobx ...
随机推荐
- Redis持久化 aof和rdb的原理配置
目录 一.介绍 二.RDB持久化(全量写入) rdb原理 rdb模式 rdb触发情况 rdb优势和劣势 rdb文件配置 rdb命令配置 rdb数据恢复 三.AOF持久化(增量写入) aof原理 aof ...
- Linux 文件属性及详细操作
目录 Linux 文件属性 文件属性信息组成 文件属性概念说明 文件软硬链接说明 硬链接 软链接 补充知识 存储数据相关-inode/block inode: block: 读取文件原理图 Linux ...
- [BUUCTF]REVERSE——[BJDCTF2020]JustRE
[BJDCTF2020]JustRE 附件 步骤: 例行查壳儿,无壳儿,32位程序 32位ida载入,main函数没看懂,shift+f12检索了一下程序里的字符串,发现了一个类似于flag的字符串 ...
- 初探Windows用户态调试机制
我们在感叹Onlydbg强大与便利的同时,是否考虑过它实现的原理呢? 作为一个技术人员知其然必知其所以然,这才是我们追求的本心. 最近在学习张银奎老师的<软件调试>,获益良多.熟悉Wind ...
- vue-cli3 vue2 保留 webpack 支持 vite 成功实践
大家好! 文本是为了提升开发效率及体验实践诞生的. 项目背景: 脚手架:vue-cli3,具体为 "@vue/cli-service": "^3.4.1" 库: ...
- C语言程序设计:模拟简单运算器的工作
目录 C语言程序设计:模拟简单运算器的工作 1.题目 2.分析 3.代码实现 4.结尾 C语言程序设计:模拟简单运算器的工作 1.题目 模拟简单运算器的工作,输入一个算式(没有空格),遇等号&qu ...
- AT2287 [ARC067B] Walk and Teleport 题解
Content 一条直线上有 \(n\) 个城市,第 \(i\) 个城市的坐标为 \(x_i\).你在某一个城市内,每一次你可以按两种方式之一进行移动: 左右移动,每移动一个单位疲劳值增加 \(a\) ...
- java 编程基础:【注解】 提取注解信息,利用自定义注解编写测试类,注解绑定事件
提取注解信息 使用注解修饰了类.方法.成员变量等成员之后,这些注解不会自己生效,必须由开发者提供相应工具来提取并处理注解信息. Java使用java.lang.annotation.Annotat ...
- pymysql-sqlalchemy-orm
sqlalchemy示例代码 多对多外键 场景:一个作者映射多个书籍,一个书籍有多个作者 作者表: id name email sex 1 Alex alex@.. M 2 Rail rail@.. ...
- JAVA获取当前年份,月份、日期、小时、分钟、秒等
import java.util.Calendar; public class Main { public static void main(String[] args) { Calendar cal ...