作家
登录

微信小程序架构分析 (下)

作者: 来源: 2017-06-09 13:47:09 阅读 我要评论

  •   } 
  • xhr.open('GET''/generateFunc?path=' + encodeURIComponent(__path__)) 
  • xhr.send()  
    • javascript 更新逻辑相对复杂一些, 起首依然是一个接口来获取新的 javascript 代码:
    1. router.get('/generateJavascript'function* () { 
    2.   this.body = yield loadFile(this.query.path) 
    3.   this.type = 'text' 
    4. })  

    然后我们在 window 对象上参加 Reload 函数履行具体的改换逻辑:

    1. window.Reload = function (e) { 
    2. var pages = __wxConfig.pages; 
    3. if (pages.indexOf(window.__wxRoute) == -1) return 
    4. // 调换本来的构造函数 
    5. f[window.__wxRoute] = e 
    6. var keys = Object.keys(p) 
    7. // 剖断是否当前应用中页面 
    8. var isCurr = s.route == window.__wxRoute 
    9. keys.forEach(function (key) { 
    10.   var o = p[key]; 
    11.   key = Number(key
    12.   var query = o.__query__ 
    13.   var page = o.page 
    14.   var route = o.route 
    15.   // 页面已经被创建 
    16.   if (route == window.__wxRoute) { 
    17.     // 履行封装后的 onHide 和 onUnload 
    18.     isCurr && page.onHide() 
    19.     page.onUnload() 
    20.     // 创建新 page 对象 
    21.     var newPage = new a.default(e, key, route) 
    22.     newPage.__query__ = query 
    23.     // 从新绑定当前页面 
    24.     if (isCurr) s.page = newPage 
    25.     o.page = newPage 
    26.     // 履行 onLoad 和 onShow 
    27.     newPage.onLoad() 
    28.     if (isCurr) newPage.onShow() 
    29.     // 更新 data 数据 
    30.     window.__wxAppData[route] = newPage.data 
    31.     window.__wxAppData[route].__webviewId__ = key 
    32.     // 发送更新事宜, 通知 view 层 
    33.     u.publish(c.UPDATE_APP_DATA) 
    34.     u.info("Update view with init data"
    35.     u.info(newPage.data) 
    36.     // 发送 appDataChange 事宜 
    37.     u.publish("appDataChange"

        推荐阅读

        CIO半月刊第十二期|打造“智慧交通”,保障城市高效、安全、智能化运行

      【义务编辑:谢海平 TEL:(010)68476606】 >>>详细阅读


      本文标题:微信小程序架构分析 (下)

      地址:http://www.17bianji.com/lsqh/35676.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)