微信小程序监控其他页面globalData的价值变化
前言
这几天去面试,多次遇到同一个知识点。还有一个关于小程序的有趣采访。有三个问题。
1.小程序中使用的Page.watch()方法是什么?
2.小程序如何监控其他页面中globalData中值的变化?
3.如果登录部分的代码在app.js中执行,由于计时问题,如何在没有得到识别标记的情况下处理其他页面请求。(会话、用户标识等)。我们如何保证其他页面请求是在登录后发出的?)
学习点
有经验的同学可能一下子就看全了,其实就是同一个意思,就是Object.defineproperty()的方法。
让我试着回答:
第一个问题:小程序中没有Page.watch()方法,但其实这里面试官想问的是第二个问题的标题,也就是属性监听器。
第二个问题:因为要监控globalData中值的变化,所以通常需要在globalData发生变化时回调一个方法。例如,我们听一个名称属性,大致代码如下:
//在app.js//app.jsapp({ onrunch : function(){ let那=this//这里,用timer来模拟网络请求settimeout (function () {that。globaldata.name=' pxh'},3000)},//这里写的是在其他接口监控,不是在app.js中,这个监控方法需要一个回调方法。watch : function(method){ var obj=this . global data;object . defineperoperty(obj,' name ',{ configurable: true,enumerable: true,set: function (value) { this。_name=值;Console.log('是否会被执行2 ')方法(值);},get:function(){ //这里可以打印一些东西,然后在其他接口调用getApp()。把这个还给我。_ name}})}、global data : { userinfo : null,_ name 3360 ' MSR ' })//然后实现onload3360函数(options){在index.js中的声明循环中让那个=thisgetApp()。watch(the . watch back)},watchBack:函数(名称){ console . log(22222);Console.log ('this。name==' name)}查看执行效果(我们可以看到我们可以完美地监控其他接口中globalData的变化)
第三个问题:emmm。第二个问题的答案就是第三个问题的答案。我们可以在index.js中的回调方法中再次发出网络请求,请求需要识别的资源。
摘要
以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。谢谢你的支持。
版权声明:微信小程序监控其他页面globalData的价值变化是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。