위챗 애플릿 통신 방식 ----5가지

통신 분류
1, 형제 간 2, 아버지 페이지 점프 하위 페이지 3, 하위 페이지 점프 아버지 페이지
활성화 시기
1. 지연 활성화는 현재 페이지의 시간 응답이 완성된 후에 의존 페이지를 터치합니다
2. 현재 페이지 응답을 즉시 활성화하기 전에 의존 페이지를 터치합니다
 
다섯 가지 통신 방식
1、onShow/onHide + localStorage
wx.getStorageSync(' data')//가져오기
wx.clearStorageSync(' data')//마지막 통신 데이터 지우기
wx.setStorageSync(' data')//통신 데이터 설정
통신 데이터를 지우는 것을 기억해라. 그렇지 않으면 문제가 생길 수 있다
localStorage에서 읽기에 실패하여 통신에 실패할 수 있음
페이지 초기화도 onShow를 터치합니다
2、onShow/onHide + globalData
app = getApp()
app.$$data.XX = null//마지막 통신 데이터 지우기
app.$$data.XX = XX//통신 데이터 설정
글로벌 데이터 오염
페이지 초기화도 onShow를 터치합니다
3. 이벤트 Bus(또는pubsub) 이벤트 게시 구독
on  emit  off
4、globalData + watcher  
oba 소스 라이브러리 사용하기
oba(app.$$data,(prop,newVal,oldVal)=>{
})
데이터 드라이브라고 하죠.
5, 공통 hack 직접 호출 통신 페이지 방법 추천
// plugin/pages.js 
//  pageModel, 
export default class PM {
  constructor() {
    this.$$cache = {};
  }

  add(pageModel) {
    let pagePath = this._getPageModelPath(pageModel);

    this.$$cache[pagePath] = pageModel;
  }

  get(pagePath) {
    return this.$$cache[pagePath];
  }
  
  delete(pageModel) {
    try {
      delete this.$$cache[this._getPageModelPath(pageModel)];
    } catch (e) {
    }
  }

  _getPageModelPath(page) {
    //  
    return page.__route__;
  }
}

// pageA
let app = getApp();

Page({
  data: {
    helloMsg: 'hello from PageA'
  },

  onLoad() {
    app.pages.add(this);
  },

  goC() {
    wx.navigateTo({
      url: '/pages/c/c'
    });
  },
  
  sayHello(msg) {
    this.setData({
      helloMsg: msg
    });
  }
});
//pageC

let app = getApp();

Page({
  doSomething() {
    //  
    app.pages.get('pages/a/a').sayHello('hello u3xyz.com');
  }
});

app.pages.add()
app.pages.get('경로').fn('xxx')
 
고마워요 고마워요https://segmentfault.com/a/1190000008895441이 작가가 도움을 줍니다.

좋은 웹페이지 즐겨찾기