下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】微信小程序中WXS的使用方法
在下給大家分享一下微信小程序中WXS的使用方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!微信小程序支持管道過濾器嗎?用過angular或者vue的同學(xué)都應(yīng)該會在項(xiàng)目里用到filter,然而在小程序中是不支持的。但是也有一些解決辦法但我只是關(guān)心WXS能不能實(shí)現(xiàn)filter以及還能做什么?帶著這樣的疑問,我重新看了一遍微信小程序官方的WXS。下面舉個(gè)簡單的例子:<wxs
module="m1">var
msg
=
"hello
world";
module.exports.message
=
msg;</wxs>
<view>{{m1.message}}</view>上面的例子可以輸出helloworld頁面,當(dāng)你閱讀完官方文檔,會發(fā)現(xiàn)小程序的腳本語言的功能很捉鱉,比如只支持es5語法,不支持外部引入js等等。但是我仍然期待它未來支持更多的能力。下面接入正題,探索文章題目的疑問一、用WXS實(shí)現(xiàn)filter前端通常有一個(gè)需求,那就是把后臺傳過來的時(shí)間戳轉(zhuǎn)為不同規(guī)格的日期后顯示出來。以往的做法一般是用一個(gè)函數(shù)對數(shù)據(jù)進(jìn)行包裝,然后輸出到頁面。就像前面提到的那篇文章里面所說的第一種方法一樣,但是有人考慮到性能問題,認(rèn)為在js里面循環(huán)處理比較耗性能(這點(diǎn)我不做評價(jià),畢竟自己沒有真正測試過)關(guān)于日期格式化的例子在前面提到的文章已經(jīng)有了,在這里我再舉一個(gè)比較簡單的例子。在我開發(fā)過的項(xiàng)目里面,后臺返回的網(wǎng)路圖片地址通常是相對地址,也就是說要把圖片顯示出來,還得加上配置好的域名前綴。而我通常是拿到數(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還能做更多條件渲染的一些東西。請看下面一個(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ù)功能幫我做條件判斷,拿到對應(yīng)的模板輸出,其功能就是一個(gè)空數(shù)據(jù)展示頁面。或許你會問這樣寫的好處是什么?那我可以告訴你,它很容易擴(kuò)展,比如新增一個(gè)頁面需要對應(yīng)的空數(shù)據(jù)模板,那么直接在switch語句中加多一個(gè)case即可。況且如果把邏輯寫在WXML上代碼會很復(fù)雜,不容易看懂。明白了這一點(diǎn),你會發(fā)現(xiàn),只要是在WXML上需要做一些邏輯判斷的操作都可以WXS代替。也就是說,在開發(fā)中,我們都可以用WXS的函數(shù)功能幫助我們清晰有效地處理WXML上渲染的一些視圖。三、思考(引伸)1、對于需要做成filter形式的WXS,最好把它寫在一個(gè).wxs文件里,需要使用時(shí),直接在對應(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度膩?zhàn)赢a(chǎn)品銷售與售后服務(wù)合同2篇
- 二零二五年度環(huán)保技術(shù)開發(fā)合伙投資合同
- 2024版學(xué)校污水處理設(shè)施清掏協(xié)議版B版
- 忻州師范學(xué)院《建筑工程評估基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年水利工程勞務(wù)派遣與設(shè)備租賃合同3篇
- 西安工商學(xué)院《圖像處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢警官職業(yè)學(xué)院《低頻模擬電路》2023-2024學(xué)年第一學(xué)期期末試卷
- 文山學(xué)院《房屋建筑學(xué)課程設(shè)討》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年生物制藥技術(shù)轉(zhuǎn)讓及合作開發(fā)協(xié)議2篇
- 二零二五年度廠長任期企業(yè)戰(zhàn)略規(guī)劃與執(zhí)行合同2篇
- 2024年滄州經(jīng)濟(jì)開發(fā)區(qū)招聘社區(qū)工作者筆試真題
- 中外美術(shù)史試題及答案
- 2025年安徽省銅陵市公安局交警支隊(duì)招聘交通輔警14人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 公共政策分析 課件 第8章政策評估;第9章政策監(jiān)控
- 人教版八年級上學(xué)期物理期末復(fù)習(xí)(壓軸60題40大考點(diǎn))
- 企業(yè)環(huán)保知識培訓(xùn)課件
- 2024年度管理評審報(bào)告
- 暨南大學(xué)《微觀經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 醫(yī)藥銷售合規(guī)培訓(xùn)
- DB51-T 5038-2018 四川省地面工程施工工藝標(biāo)準(zhǔn)
- 三年級數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
評論
0/150
提交評論