微信小程序如何用watch实现长尾词状态的全局共享?

2026-04-09 20:051阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计953个文字,预计阅读时间需要4分钟。

微信小程序如何用watch实现长尾词状态的全局共享?

问题+在先前开发微信小程序的时候,获取用户信息、openid以及地理定位等信息时,都是采用Promise的异步方式获取,但这种做法在页面和App.js中获取信息可能造成请求重复的问题。

问题

在之前开发微信小程序的时候,获取用户信息、openid还有地理位置这些信息的时候,都是采用Promise的方式异步获取,但是这样的话在页面和App.js中都获取就可能造成请求重复的问题。

比如为了在每个页面都能获取到这些共享信息,都会选择在App.js中进行获取,然后在页面级进行获取,这两次获取的时间间隔较小时就可能导致前一个请求还未获取到数据,后一个请求就会再次进行获取,这样就产生了两次请求。

还有一个问题就是书写麻烦(虽然也能通过async await简化),比如

onLoad() { app.getUserInfo() .then(userInfo => { }).catch(err => { /* 错误处理 */ }); // 如果同时需要userInfo和openid,可能就是如下形式: Promise.all([app.getUserInfo(), app.getOpenid()]) .then(res => { }).catch(err => { /* 错误处理 */ }); }

正好周末的时候突然想到了vue的watch语法,利用一些相关的知识,就可以解决这个麻烦的问题了。

阅读全文

本文共计953个文字,预计阅读时间需要4分钟。

微信小程序如何用watch实现长尾词状态的全局共享?

问题+在先前开发微信小程序的时候,获取用户信息、openid以及地理定位等信息时,都是采用Promise的异步方式获取,但这种做法在页面和App.js中获取信息可能造成请求重复的问题。

问题

在之前开发微信小程序的时候,获取用户信息、openid还有地理位置这些信息的时候,都是采用Promise的方式异步获取,但是这样的话在页面和App.js中都获取就可能造成请求重复的问题。

比如为了在每个页面都能获取到这些共享信息,都会选择在App.js中进行获取,然后在页面级进行获取,这两次获取的时间间隔较小时就可能导致前一个请求还未获取到数据,后一个请求就会再次进行获取,这样就产生了两次请求。

还有一个问题就是书写麻烦(虽然也能通过async await简化),比如

onLoad() { app.getUserInfo() .then(userInfo => { }).catch(err => { /* 错误处理 */ }); // 如果同时需要userInfo和openid,可能就是如下形式: Promise.all([app.getUserInfo(), app.getOpenid()]) .then(res => { }).catch(err => { /* 错误处理 */ }); }

正好周末的时候突然想到了vue的watch语法,利用一些相关的知识,就可以解决这个麻烦的问题了。

阅读全文