MUI -- plus初始化原理及plus is not defined,mui is not defined 错误汇总

博客主要介绍了plus和mui API调用的注意事项。普通浏览器无plus环境,运行plus api会报错,使用mui需引入mui.js。plus和mui都要初始化完成后调用,plus ready异步,mui ready一般随DOMContentLoaded完成,还提及了加载顺序。

不要在没有plus和mui的环境下调用相关API

普通浏览器里没有plus环境,只有HBuilder真机运行和打包后才能运行plus api。

在普通浏览器里运行时plus api时控制台必然会输出plus is not defined错误提示。

mui作为一个前端框架,你必须保证当前页面引入了mui.js。否则也会出现mui is not defined。

 

不要在plus和mui未完成初始化时调用相关API


就像在dom初始化完成前(DOMContentLoaded)去操作dom,就会报错是一样的道理。

plus和mui都需要初始化,在初始化完成后调用再调用。

一般我们在plusready的回调事件里调用plus api。

document.addEventListener('plusready',function () {
        // 在这里调用plus api
    },false);

执行更高效的写法是这样,如果plus已经存在,就直接使用

function plusReady(){
            // 在这里调用plus api
        }
        if(window.plus){
            plusReady();
        }else{
            document.addEventListener('plusready',plusReady,false);
        }

mui框架对此进行了封装,写法更简单:

mui.plusReady(function(){
             // 在这里调用plus api
        });

事实上,mui作为一个框架,也有初始化的过程,但mui的初始化过程在DOMContentLoaded完毕后就结束了。

mui ready的写法是这样,但一般无需使用。

mui.ready(function () {
 
        })

关于加载顺序

在浏览器里的常规加载顺序是DOMContentLoaded、onload。

plus的ready是异步的,所以不一定在DOMContentLoaded之前或之后,但一般在onload之前。

而mui的ready一般伴随DOMContentLoaded而完成。

详细的启动时序参考这里:[http://ask.dcloud.net.cn/article/571](http://ask.dcloud.net.cn/article/571)

 

转载于:https://www.cnblogs.com/li-sir/p/10812193.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值