【微信小程序】求教如何实现跨页面通信呢?

请问小程序怎么实现跨页面的数据和方法调用呢?
比如我有一组数据,有几个页面都需要能读取和修改。有几个函数,希望几个页面都能调用,该怎么做呢?
谢谢!

阅读 5.9k
4 个回答

看小程序的官方实例吧,数据要么做成缓存,要么做成全局变量,通过回调函数处理,
函数则是集成在一个js里,调用就行,官方实例的util.js就是做这个用的

楼上说得对,官方示例util.js就是放公用函数的,写完后module.exports.函数名 = 函数名,在引用的界面请求下,这些文档都有的,至于数据,放在Storage里比较好,如果是不变数据的话,就放在app.js的全局里,在页面里调用

首先Page接收的是对象,页面上的Page({}) 改成

////////////// index.js
//导入模块文件
import { SortPannel} from '../../js/xx.js'

let PageData = {

onLoad:function(){ 
    //在页面加载时 new 一次你的模块文件
    new SortPannel
}  

}

Page(PageData)

////////////// xx.js

//定义页面互动的数据(双向)
let compData={

'name':'测试君'

}

let compEvent ={

getData:function(){

}

}

function SortPannel() {
// 拿到当前页面栈
let pages = getCurrentPages()
let curPage = pages[pages.length - 1]

// 把组件的事件"合并到"页面对象上
Object.assign(curPage, compEvent)

// 把组件的数据"注入"到页面的data对象中
curPage.setData(compData)

}

//最后导出模块
module.exports = {
SortPannel
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏