免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動(dòng)推薦你的品牌,搶占AI流量入口!  點(diǎn)擊查看

小程序模板網(wǎng)

一斤代碼解讀--小程序視圖層處理增強(qiáng)之WXS

發(fā)布時(shí)間:2017-12-29 18:17 所屬欄目:小程序開(kāi)發(fā)教程

隨著微信開(kāi)發(fā)者工具v1.0.0的釋出,beta已久的微信小程序視圖層的新功能特性WXS(WeiXin Script),也正式到來(lái)了。熟悉微信小程序開(kāi)發(fā)框架的開(kāi)發(fā)者,肯定會(huì)對(duì)其視圖層WXML中缺失的一個(gè)功能耿耿于懷,那就是沒(méi)有辦法在 ...

 
 
 

隨著微信開(kāi)發(fā)者工具v1.0.0的釋出,beta已久的微信小程序視圖層的新功能特性WXS(WeiXin Script),也正式到來(lái)了。

熟悉微信小程序開(kāi)發(fā)框架的開(kāi)發(fā)者,肯定會(huì)對(duì)其視圖層WXML中缺失的一個(gè)功能耿耿于懷,那就是沒(méi)有辦法在視圖層對(duì)數(shù)據(jù)進(jìn)行格式化處理。比如我們從后端獲取到一個(gè)包含了時(shí)間戳數(shù)據(jù)的數(shù)組,然后需要在界面上把這些日期都格式化顯示為2017-01-01這種格式的日期形式,在Vue, Angular之類的前端Web框架中,一般在視圖層都提供了如filter之類相應(yīng)比較好用的方案。

而在現(xiàn)有的微信小程序代碼中?你能怎么做?估計(jì)我們的做法要么是在Page代碼中遍歷一次數(shù)組,做一下格式化;要么,只能讓后端返回已經(jīng)格式化好的數(shù)據(jù)了。

對(duì)于追求程序代碼優(yōu)雅的程序員來(lái)說(shuō),這簡(jiǎn)直就是心中一個(gè)巨大的疙瘩!微信小程序團(tuán)隊(duì)估計(jì)沒(méi)少受這方面的吐槽。因此,這次WXS的推出算是滿足了對(duì)這種需求的渴望吧。

WXS算是專供WXML調(diào)用的有獨(dú)立作用域的JS模塊(不是全功能的JS,感覺(jué)有所限制)。舉個(gè)例子,在這之前,我們是沒(méi)有辦法在WXML的數(shù)據(jù)綁定括號(hào){{}}中調(diào)用JS函數(shù)的,所以在WXML層面就缺少了進(jìn)一步做數(shù)據(jù)處理的能力。

下列代碼是不工作的:

 

			
  1. <!-- wxml文件 -->
  2. <view>{{testFunc(name)}}</view>
  3.  
  4. // some-page.js
  5. Page({
  6. data: {
  7. name: "一斤代碼"
  8. },
  9.  
  10. testFunc: function (name) {
  11. return "Hello," + name
  12. }
  13. })

而有了WXS之后,我們就可以實(shí)現(xiàn)我們預(yù)期的功能了:

 

			
  1. <!-- wxml文件 -->
  2. <view>{{myModule.testFunc(name)}}</view>
  3.  
  4. <wxs module="myModule">
  5. function testFunc(name) {
  6. return "Hello," + name
  7. }
  8. module.exports.testFunc = testFunc
  9. </wxs>
  10.  
  11. // some-page.js
  12. Page({
  13. data: {
  14. name: "一斤代碼"
  15. }
  16. })

WXS可以直接定義在wxml文件的標(biāo)簽體中,也可以寫(xiě)在獨(dú)立的.wxs后綴名的文件中,然后在wxml文件中通過(guò)的形式引入。

如要要在WXS代碼中去引用其他獨(dú)立.wxs文件,可以通過(guò) require()函數(shù)來(lái)引入,基本上都是我們熟悉的方式:

 

			
  1. var formatUtil = require("./format-util.wxs");
  2. var now = getDate()
  3.  
  4. formatUtil.formatDate(now)

所以,WXS在功能方面,并沒(méi)有什么復(fù)雜的東西,唯一需要特別注意一些的,就是它的作用域了:

模塊只能在定義模塊的 WXML 文件中被訪問(wèn)到。使用 或 時(shí), 模塊不會(huì)被引入到對(duì)應(yīng)的 WXML 文件中。

標(biāo)簽中,只能使用定義該 的 WXML 文件中定義的 模塊。

趕緊去試試吧,看看你現(xiàn)有的代碼是不是有可以借助WXS來(lái)優(yōu)化重構(gòu)一下的地方。



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://m.szcjxy.com/wxmini/doc/course/18315.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢: 點(diǎn)擊咨詢
在線客服