在正H5里常,微信小程序得到全局变量, 有知道的老铁请指教--已解决
1.在根目录建立common目录及common.js
// 防止处理多次点击
function noMultipleClicks(methods, info) {
// methods是需要点击后需要执行的函数, info是点击需要传的参数
let that = this;
if(that.noClick==null){
that.noClick=true //布尔值 真为允许点
}
if (that.noClick==true) {
// 第一次点击
if (info && info !== '') {
// info是执行函数需要传的参数
methods(info);
} else {
methods();
}
that.noClick=false
setTimeout(() => {
that.noClick = true;
}, 2000)
}
}
function aaaa(){
console.log("in common.js aaaa do it")
}
const atem={aaaa,noMultipleClicks}
//导出
export default {
atem
//禁止多次点击
}
2.在main.js中引入common.js
import common from "@/common/common.js"
并设置
app.config.globalProperties.$abc=common.atem
app.config.globalProperties.abc1="test"
3.在组件或页面中使用
在script里可以
getApp().$abc.aaaa()
如果要在template里,用上面的不行,可以在SCRIPT里定义个变量
const ttt=getApp().$abc.noMultipleClicks
然后在template里引用,
ttt.aaaa()
//ttt.noMultipleClicks()
以上2024.04月测试可以
发布后一小时....在微信小程序无法得到这个全局变量-->已解决,看4
4.在微信小程序里,第三步的方式无效,用下面的方法测试可用
const tem1=getCurrentInstance().appContext.config.globalProperties.abc1
const tem2=getCurrentInstance().appContext.config.globalProperties.$abc
console.log(tem1)//可得到abc变量的值
//aaaa和noMultipleClicks是在外部js中定义的两个方法,测试在H5和微信小程序中均可拿到.
tem2.aaaa()
tem2.noMultipleClicks(go1)