摘要:與之間通過橋協議通信包括調用指令和各種事件,涉及消息序列化跨線程通信與。一個小程序可以有多個,頁面間切換動畫比更流暢。業務無法直接控制。
由于微信小程序 技術生態比較閉合,導致很多 現代前端框架很多積累出的成果都沒有實現(可能未來會逐一實現). 用慣了現代 再耍小程序 總感覺很不順手.
需要結果的請直接看最后的WXS
View Filterfilter 理解為管道加工處理, 你扔給我一組數據 經過各種不同類型的管道加工 產出新的數據 但是又不會影響修改原數據, 最終展示給用戶.
現有前端框架filter一般:
time | dateTime("yyy-mm-dd")
使用 | 作為管道符 傳遞參數進行序列化
缺陷:截止目前,小程序官方并沒有管道實現方式,以下列出了替代幾種方案,供大家選擇使用.
直接修改原數據在請求完成之后 對返回值data進行一次數據處理 比如 抽象一個_formatListData方法對 返回進行二次處理.
_formatListData(list) { return list.map((item) => { let date = FormatUtil.getDateTime(item.childBirth); item.filterChildBirth = `${date.y}-${date.M}-${date.d}`; return item; } }
這種方式會給原數據添加新字段 filterChildBirth (原字段為 childBirth) . 最終展示也是顯示filterChildBirth 到view上面,多個需要filter的字段都通過這種方式去處理,很明顯 對一些業務型filter倒還好 如果遇到filter需要 共享 就比較坑.
ES6 getdata : { time : 1511748300571 } get time (){ return FormatUtil.getDate(this.data.time); }
通過get方法來實現對字段顯示過濾. 只能操作對象 對數組中的item 比較無力.
WXS微信小程序的架構分為 app-service 和 page-frame,分別運行于不同的線程。你在開發時寫的所有 JS 都是運行在 app-service 線程里的,而每個頁面各自的 WXML/WXSS 則運行在 page-frame 中。app-service 與 page-frame 之間通過橋協議通信(包括 setData 調用、canvas指令和各種DOM事件),涉及消息序列化、跨線程通信與evaluateJavascript()。這個架構的好處是:分開了業務主線程和顯示界面,即便業務主線程非常繁忙,也不會阻塞用戶在 page-frame 上的交互。一個小程序可以有多個 page-frame (webview),頁面間切換動畫比SPA更流暢。壞處是:在 page-frame 上無法調用業務 JS。跨線程通信的成本很高,不適合需要頻繁通信的場景。業務 JS 無法直接控制 DOM。
作者:魯小夫
鏈接:https://www.zhihu.com/questio...
了解了wxs 設計初衷,我們也就知道能做什么事情了.
wxs 目前主要是增強 wxml 標簽的表達能力
ps : 因為運行在不同線程所以 js與wxs 不能相互引用的. 這就有可能在js中使用公共方法 在wxs中需要重新寫一份(為了共享filter) 造成代碼冗余.
通過wxs 實現共享filter:
首先我們建立共享filter文件夾,實現一個日期格式化
WXS 實現日期格式化(es6語法不能使用)
var DateFr = { getDate: function (time, splitStr) { if (!time) return ""; var date =getDate(time); var M = date.getMonth() + 1; var y = date.getFullYear(); var d = date.getDate(); if (M < 10) M = "0" + M; if (d < 10) d = "0" + d; if (splitStr) return y +splitStr + M +splitStr+d; else return { y: y, M: M, d: d }; } } module.exports = { getDate: DateFr.getDate }
在業務頁面wxml中引用wxs
使用filter
結尾{{dateFr.getTime(item.createdAt,":")}}
wxs 基本滿足filter的場景:
共享filter場景 采用3
業務filter很多場景 采用1,3
簡單業務filter 數據非數組型場景 采用2
小程序還有很長的路要走,仍需繼續努力.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/90127.html
摘要:并總結經典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發和面試問題,由基礎到困難循序漸進,適合面試和開發小程序。并總結vue React html css js 經典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:并總結經典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發和面試問題,由基礎到困難循序漸進,適合面試和開發小程序。并總結vue React html css js 經典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:并總結經典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關注微信小程序的開發和面試問題,由基礎到困難循序漸進,適合面試和開發小程序。并總結vue React html css js 經典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...
摘要:具體用法其中表示數組元素的值,表示數組元素的下標,表示包含該元素的數組。這里采用隨機函數來獲取數組的下標,函數是獲取之間的數,函數是向下取整,這樣就可以隨機獲取相應的下標數。小程序中的模板就很好地幫我們解決了這個問題,并通過屬性來實現調用。 在微信小程序的開發過程中,當你想要實現不同頁面間的數據綁定,卻為此抓耳饒腮時,不妨讓微信小程序與filter 來一場完美的邂逅,相信會給你帶來別樣...
閱讀 3453·2023-04-26 01:45
閱讀 2231·2021-11-23 09:51
閱讀 3643·2021-10-18 13:29
閱讀 3442·2021-09-07 10:12
閱讀 704·2021-08-27 16:24
閱讀 1775·2019-08-30 15:44
閱讀 2200·2019-08-30 15:43
閱讀 2955·2019-08-30 13:11