微信小程序怎样把A.js的变量同步到B.js里

比如有两个页面,index.js和goods.js.怎样在goods.js同步index.js里的一个变量,我在百度上找都是说获取app.js里的全局变量,找了几天都没找到一个关于A.js获取B.js里的变量的方法,也没有关于怎样把一个页面变量(比如goods.js里的一个变量goods)转成全局变量。请高人指点!
我是个小白,可不可以贴段代码!!!

缓存,如果是组件可以传递参数

有两种方法:

  • 1、 利用本地存储功能或共享变量,进行缓存数据。
  • 2、 利用父子组件事件进行通信,你这里可以将goods.js做为子组件。具体查看官网小程序官网

代码如下:

  • B页面作为子组件,首先在A.json 添加子组件B
{
  "usingComponents": {
    "b": "/components/b"
  }
}
  • 在A.js设置同步变量比如good
Page({
  data: {
    good: {name :'123'}, // 实时同步的变量
    dataFieldB: '456'
  },
  onLoad: function () {
  },
  bindKeyInput: function (e) {
    this.setData({
      good: {name: e.detail.value}
    })
  }
})
  • 在A.wxml设置input可以实时修改good值

    <!-- 引用组件的页面模版 -->
    <view>
    <view class="weui-cell weui-cell_input">
    index.js 内的变量值:<input class="weui-input" maxlength="10" placeholder="最大输入长度为10" value="{{good.name}}" bindinput="bindKeyInput"/>
    </view>
    <!-- 此时子组件B页面,.设置传递的变量如good -->
    <b prop-a="{{good}}" prop-b="{{dataFieldB}}">
     <view>这里是插入html</view> 
    </b>
    </view>
    
  • 在B.js 接收变量,并打印

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    propA: Object, // 接收的变量
    propB: String // 接收的变量
  },

  /**
   * 组件的初始数据
   */
  data: {
  },

  /**
   * 组件的方法列表
   */
  methods: {
  },
  lifetimes: {
    attached: function() {
     console.log(this.data.propA) // 打印接收的变量
    }
  }
})

  • 在B.wxml 实时展示
<!-- 组件模板 -->
<view class="wrapper">
  <view>这里是组件的内部节点</view>
  <text>propA: {{propA.name}}</text>
  <text>propB: {{propB}}</text>
  <slot></slot>
</view>

最简单的,用全局变量
https://www.cnblogs.com/web-record/p/10978314.html

使用 module.exports = {
urlList: urlList
}

这种方式 试试呢