



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】微信小程序中WXS的使用方法
在下給大家分享一下微信小程序中WXS的使用方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!微信小程序支持管道過濾器嗎?用過angular或者vue的同學(xué)都應(yīng)該會(huì)在項(xiàng)目里用到filter,然而在小程序中是不支持的。但是也有一些解決辦法但我只是關(guān)心WXS能不能實(shí)現(xiàn)filter以及還能做什么?帶著這樣的疑問,我重新看了一遍微信小程序官方的WXS。下面舉個(gè)簡(jiǎn)單的例子:<wxs
module="m1">var
msg
=
"hello
world";
module.exports.message
=
msg;</wxs>
<view>{{m1.message}}</view>上面的例子可以輸出helloworld頁面,當(dāng)你閱讀完官方文檔,會(huì)發(fā)現(xiàn)小程序的腳本語言的功能很捉鱉,比如只支持es5語法,不支持外部引入js等等。但是我仍然期待它未來支持更多的能力。下面接入正題,探索文章題目的疑問一、用WXS實(shí)現(xiàn)filter前端通常有一個(gè)需求,那就是把后臺(tái)傳過來的時(shí)間戳轉(zhuǎn)為不同規(guī)格的日期后顯示出來。以往的做法一般是用一個(gè)函數(shù)對(duì)數(shù)據(jù)進(jìn)行包裝,然后輸出到頁面。就像前面提到的那篇文章里面所說的第一種方法一樣,但是有人考慮到性能問題,認(rèn)為在js里面循環(huán)處理比較耗性能(這點(diǎn)我不做評(píng)價(jià),畢竟自己沒有真正測(cè)試過)關(guān)于日期格式化的例子在前面提到的文章已經(jīng)有了,在這里我再舉一個(gè)比較簡(jiǎn)單的例子。在我開發(fā)過的項(xiàng)目里面,后臺(tái)返回的網(wǎng)路圖片地址通常是相對(duì)地址,也就是說要把圖片顯示出來,還得加上配置好的域名前綴。而我通常是拿到數(shù)據(jù)后進(jìn)行遍歷操作,把需要前端展示的圖片加上前綴。但是有了WXS,我們可以這樣做:<wxs
module="filter">
function
getFullPath(url)
{
return
""
+
url
}
module.exports.getFullPath
=
getFullPath
</wxs>
<image
src="{{filter.getFullPath(url)}}"></image>在上面這個(gè)例子中,可以看到整個(gè)過程基本類似于vue等框架自定義filter的做法。二、WXS還能做什么其實(shí)很多時(shí)候,我們并不了解WXS還能做更多條件渲染的一些東西。請(qǐng)看下面一個(gè)例子:<wxs
module="filter">
function
getData(entry,
type)
{
var
imgUrl
=
'';
var
content
=
'';
switch
(entry)
{
case
'needs':
imgUrl
=
'/images/goods_empty.png';
content
=
'暫時(shí)沒有需求';
break;
case
'goods':
imgUrl
=
'/images/goods_empty.png';
content
=
'暫時(shí)沒有商品';
break;
case
'activity':
imgUrl
=
'/images/activity_empty.png';
content
=
'該專欄暫時(shí)沒有活動(dòng)';
break;
case
'channel':
imgUrl
=
'/images/article_empty.png';
content
=
'該專欄暫時(shí)沒有資訊';
break;
case
'micro-circle':
imgUrl
=
'/images/article_empty.png';
content
=
'沒有相關(guān)的話題哦';
break;
case
'needs-release':
imgUrl
=
'/images/goods_release_empty.png';
content
=
'你還沒有發(fā)布任何需求哦';
break;
case
'goods-release':
imgUrl
=
'/images/goods_release_empty.png';
content
=
'你還沒有發(fā)布任何商品哦';
break;
case
'goods-collection':
imgUrl
=
'/images/goods_collect_empty.png';
content
=
'你還沒有收藏任何商品哦';
break;
case
'apply':
imgUrl
=
'/images/activity_apply_empty.png';
content
=
'你還沒有報(bào)名任何活動(dòng)哦';
break;
case
'activity-collection':
imgUrl
=
'/images/activity_collect_empty.png';
content
=
'你還沒有收藏任何活動(dòng)哦';
break;
default:
break;
}
if
(type
===
'image')
{
return
imgUrl;
}
else
{
return
content;
}
}
module.exports.getData
=
getData;
</wxs>
<template
name="nodata">
<view
class="no-data">
<image
src="{{filter.getData(entry,
'image')}}"
class="no-data-icon"></image>
<view
class="no-data-text">{{filter.getData(entry,
'content')}}</view>
</view>
</template>上例中,我使用了WXS的函數(shù)功能幫我做條件判斷,拿到對(duì)應(yīng)的模板輸出,其功能就是一個(gè)空數(shù)據(jù)展示頁面。或許你會(huì)問這樣寫的好處是什么?那我可以告訴你,它很容易擴(kuò)展,比如新增一個(gè)頁面需要對(duì)應(yīng)的空數(shù)據(jù)模板,那么直接在switch語句中加多一個(gè)case即可。況且如果把邏輯寫在WXML上代碼會(huì)很復(fù)雜,不容易看懂。明白了這一點(diǎn),你會(huì)發(fā)現(xiàn),只要是在WXML上需要做一些邏輯判斷的操作都可以WXS代替。也就是說,在開發(fā)中,我們都可以用WXS的函數(shù)功能幫助我們清晰有效地處理WXML上渲染的一些視圖。三、思考(引伸)1、對(duì)于需要做成filter形式的WXS,最好把它寫在一個(gè).wxs文件里,需要使用時(shí),直接在對(duì)應(yīng)WXML上引用即可。var
foo
=
"'hello
world'
from
tools.wxs";
var
bar
=
function
(d)
{
return
d;
}
module.exports
=
{
FOO:
foo,
bar:
bar,
};
module.exports.msg
=
"some
msg
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)低功耗LED燈行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 健康知識(shí)講座課件圖片
- 健康看電視講課課件
- 醫(yī)藥安全政策解讀課件
- 2024年疊片機(jī)資金需求報(bào)告代可行性研究報(bào)告
- 2024年食品冷凍機(jī)械投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 蕭山區(qū)小區(qū)監(jiān)控管理辦法
- 蛋糕廠生產(chǎn)管理辦法標(biāo)準(zhǔn)
- 衡山縣村民建房管理辦法
- 健康活到百歲課件
- 非煤礦山礦石運(yùn)輸車輛安全協(xié)議書
- 東北林業(yè)大學(xué)20-21高數(shù)A2期末考試含答案
- 暨南大學(xué)《微觀經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 原理及適用范圍 火試金法
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 職工宿舍衛(wèi)生制度
- 新疆2020年中考英語真題(含答案)
- 北京市東城區(qū)東直門中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期分班考數(shù)學(xué)試卷
- 內(nèi)蒙古地區(qū)歷年中考語文現(xiàn)代文閱讀之非連續(xù)性文本閱讀14篇(含答案)(2003-2023)
- 國(guó)家開放大學(xué)本科《理工英語3》一平臺(tái)機(jī)考總題庫2025珍藏版
- 2024北京海淀區(qū)初二(下)期末物理及答案
評(píng)論
0/150
提交評(píng)論