微信小程序 魔改 写法
1.0.6 新增加自定义修改优化
//app.ts中添加
//onLaunch的globalThis仍需要(防止出错,毕竟官方没有说支持globalThis)
const leg = require('@legns/leg-wx-page') as any;
// demo为自定义的如果不自定义则不需要 调用leg.set()方法
const demo = require('./utils/demo')
leg.set(demo)
//demo.ts
module.exports = {
page: {
/**
第一个写法
只会执行此方法 你在调用页面写的Message函数会失效
*/
Messages() {
return function (q: any) {
setTimeout(() => {
wx.showToast({
title: q.title,
icon: 'none',
duration: q.time || 2000
});
}, 200);
};
},
/**
第二个写法
都会执行 先执行此函数
在执行你在调用页面的函数
*/
Message(message: any) {
return function (q: any) {
//判断当前页面是否有这个函数
if (!message) {
setTimeout(() => {
wx.showToast({
title: q.title,
icon: 'none',
duration: q.time || 2000
});
}, 200);
} else {
//有就返回
return message.call(this, q, { a: 123 })
}
};
}
},
wx: {
//改写或添加自己的方法 wx.调用
navigateToProxy(navigateTo: any): any {
return function newNavigateTo(object: any) {
let param = myParamToJson(object.param);
object.url = object.url + "?param=" + JSON.stringify(param)
return navigateTo({
...object,
});
};
}
}
}
1.0.5 leg.data产生的bug修复优化
npm install leg-wx-page --save
用法1:
在app.js/ts中引用即可
require('@legns/leg-wx-page')
用法2:
在app.js/ts中引用即可
const leg = require('@legns/leg-wx-page')
并在onLaunch写入
if (typeof globalThis === 'undefined') {
Object.defineProperty(globalThis, "leg", {
get() {
return leg
},
configurable: false,
enumerable: false
});
} else {
//@ts-ignore
globalThis.leg = leg;
}
公共的有
onLoad
myBack
goto
clear
Message
onShow
用法2添加了 this.setData 的另一种写法
但没有修原 this.setData (改过this.data但太耗性能了)用法如下:
leg.data={time:{asd:321}}
leg.data.time.asd=123
leg.data.end.name.toFixed(3)
leg.data['time[0].asd']
可正常如js复制写且能动态渲染
ts:需在typings/types/wx/lib.wx.page.d.ts中添加[name: string]: any 在47行左右
interface ILifetime {
[name: string]: any
有其他bug问题请反馈https://gitee.com/Lucky8Guy/LEG/issues 或QQ 1334199284