当前位置: 首页 > wzjs >正文

站长一般几个网站南京响应式网站设计

站长一般几个网站,南京响应式网站设计,工商网核名查询,php网站建设论文在微信小程序中,实现多个页面共享数据有以下几种常用方式,根据场景选择最适合的方案: 全局变量(App.js) 适用场景:简单数据共享(非响应式) 实现方式: javascript // ap…

在微信小程序中,实现多个页面共享数据有以下几种常用方式,根据场景选择最适合的方案:

  1. 全局变量(App.js)
    适用场景:简单数据共享(非响应式)
    实现方式:

javascript
// app.js
App({
globalData: {
userInfo: null,
token: “”
}
})

// 任意页面获取/修改
const app = getApp();
app.globalData.token = “new_token”; // 写入数据
console.log(app.globalData.token); // 读取数据
缺点:数据变更不会自动触发页面更新。

  1. 本地缓存(Storage)
    适用场景:持久化数据(如用户登录状态)
    实现方式:

javascript
// 存数据
wx.setStorageSync(‘key’, { name: ‘Alice’ });

// 取数据(任意页面)
const data = wx.getStorageSync(‘key’);
注意:

同步方法 Sync 结尾,异步用 wx.setStorage

单个 key 最大 1MB,总上限 10MB

用户清除缓存时数据会丢失

  1. 事件总线(EventBus)
    适用场景:跨页面实时通信
    实现方式:

javascript
// app.js 中初始化事件中心
App({
eventBus: new Map(), // 简易版
on(event, callback) {
if (!this.eventBus.has(event)) this.eventBus.set(event, []);
this.eventBus.get(event).push(callback);
},
emit(event, data) {
if (this.eventBus.has(event)) {
this.eventBus.get(event).forEach(cb => cb(data));
}
}
})

// A页面发送事件
const app = getApp();
app.emit(‘dataUpdate’, { newData: 123 });

// B页面监听
app.on(‘dataUpdate’, data => {
console.log(‘收到数据:’, data);
this.setData({ received: data }) // 更新视图
});
优点:解耦页面间通信
缺点:需手动移除监听(可在 onUnload 中处理)

  1. 状态管理库(如 MobX)
    适用场景:复杂应用响应式数据共享
    步骤:

安装依赖:

bash
npm install mobx-miniprogram mobx-miniprogram-bindings
创建 Store:

javascript
// store.js
import { observable, action } from ‘mobx-miniprogram’;

export const store = observable({
count: 0,
increment: action(function() {
this.count++;
})
});
绑定到页面:

javascript
import { createStoreBindings } from ‘mobx-miniprogram-bindings’;
import { store } from ‘./store’;

Page({
onLoad() {
this.storeBindings = createStoreBindings(this, {
store,
fields: [‘count’], // 映射数据
actions: [‘increment’] // 映射方法
});
},
onUnload() {
this.storeBindings.destroy(); // 清理绑定
}
})
在页面中使用:

xml
{{count}}
+1
优点:自动更新视图,适合中大型项目。

  1. 页面传参(URL参数)
    适用场景:简单数据传递到下一页
    实现方式:

javascript
// 页面A跳转
wx.navigateTo({
url: ‘/pages/pageB?data=’ + JSON.stringify({ id: 1 })
})

// 页面B获取
Page({
onLoad(options) {
const data = JSON.parse(options.data);
}
})
限制:只适用于单向传递,数据量不宜过大。

  1. 数据库(云开发)
    适用场景:多端实时同步数据

javascript
// 写入数据
const db = wx.cloud.database();
db.collection(‘data’).add({ data: { value: 100 } });

// 监听数据变化(所有页面)
const watcher = db.collection(‘data’).watch({
onChange: snapshot => console.log(‘新数据’, snapshot)
});
⭐ 方案推荐 ⭐
场景 推荐方案
简单全局数据(如用户信息) App.globalData
需要持久化的数据(如设置项) wx.setStorage
复杂应用状态管理 MobX 等状态库
页面间事件通知 EventBus
实时多端同步 云数据库
重要提示:

对于响应式数据更新,优先选择 MobX 或事件总线

避免滥用全局变量,大型项目用状态管理更易维护

敏感数据(如 token)不要存储在 globalData,用 Storage 加密存储

http://www.dtcms.com/wzjs/830013.html

相关文章:

  • 优化网站排名推广滨海新区商城网站建设
  • 火星建站和八亿建站有做装修效果图赚钱的网站吗
  • 哪些公司做外贸网站项目计划书目录
  • 南昌市住房和城乡建设网站深圳建设网站费用
  • 淳安千岛湖建设集团网站查询关键词密度网站的网址有哪些
  • 怎么做淘宝网站赚钱技巧新站如何让百度快速收录
  • 网站制作结构南通 外贸建站
  • php网站开发哪个好赣州网站建设信息
  • 海外求购信息网网站优化定做
  • 建设网站有什么作用是什么广告字在线制作
  • 青岛硅谷网站建设磐石网站建设
  • 域名怎么用到自己做的网站3d动画特效制作软件
  • 网络经营许可证2022最好的百度seo
  • 网站如何做交换链接老闵行在哪里
  • 沈阳市建设工程质量监督局网站惠州做棋牌网站建设找哪家效益快
  • 服装行业网站模板正规的网站建设工作室
  • wordpress 做音乐网站零成本游戏网站开发
  • 山东省春季高考网站建设试题WordPress百度怎么不收录
  • 外贸大型门户网站制作制作网站报价单
  • 网站管理助手数据库动漫网站设计理念
  • 网站seo优化费用临沂天元建设集团网站
  • 嘉兴手机端建站模板品牌网站建设案例
  • 深圳微商城网站制作费用1920网页设计尺寸规范
  • 网站开发过程文档湛江网站定制
  • 杨小刀网站建设网络营销内容有哪些方面
  • 做安全宣传的是什么网站北湖区网站建设
  • 中山网站建设模板网络公司团队管理的七个要点
  • 网站升级中htmlwordpress 侧边导航
  • 织梦cms怎么更改网站的路径实名域名购买
  • 台州制作网站软件seo多久可以学会