您好,登錄后才能下訂單哦!
前言
微信小程序特點“無須安裝,無須卸載,觸手可及,用完即走”,適合輕量級應用快速開發。小程序模版思想是它開發的核心思想,可以幫助開發者減少很多重復代碼,我們來看看怎么在小程序中實現市面上常用的評分組件, 看看效果圖:
創建模版
wxml文件:
以<template>為根節點,添加name屬性用來區分不同模版:
<template name="starsTemplate"> <view class='stars-container'> <view class='stars'> <block wx:for="{{stars}}" wx:for-item="i" wx:key="position"> <image wx:if="{{i}}" src='/images/icon/star.png'></image> <!-- <image wx:elif="{{i==2}}" src='/images/icon/none-star.png'></image> --> <image wx:else src='/images/icon/none-star.png'></image> </block> </view> <text class='star-score'>{{score}}</text> </view> </template>
wxss文件:
這里我們采用小程序推薦使用flex模型,橫向排列五顆星星圖片。
.stars-container { display: flex; flex-direction: row; } .stars { display: flex; flex-direction: row; height: 17rpx; margin-right: 24rpx; margin-top: 6rpx; } .stars image { padding-left: 3rpx; height: 17rpx; width: 17rpx; } .star-score { color: #1f3463; }
模版使用
引用wxml模版:
<import src="../stars/stars-template.wxml" /> <!--這里引用模板文件最好使用相對路徑-->
<template is="starsTemplate" data="{{stars:stars,score:average}}" /> <!--is指定使用模版的名稱-->
引用wxss模版:
在使用模版文件對應的wxss文件中輸入以下表達式即可
@import "../stars/stars-template.wxss";
數據裝換:
我看到在使用模版wxml文件時有個data=“{{stars:stars,score:average}}”屬性和數據,表示指定模版的數據,我們一般從后臺獲取的評分數據一般都是一個數字,比如:3.5,4,5等等,我們需要把這些數字轉換成五個等級數組,決定評分星星顯示什么圖片,這里我們用1表示顯示高亮的,0表示灰色星星,我們也可以在一個2表示半顆高亮的星星表示0.5的評分:
function convertToStarsArray(stars) { var num = stars.toString().substring(0, 1); var array = []; for (var i = 1; i <= 5; i++) { if (i < num) { array.push(1); } else { array.push(0); } } return array; }
案例wxml代碼:
<import src="stars/stars-template.wxml" /> <view style='margin:100rpx'> <template is="starsTemplate" data="{{stars:stars,score:average}}" /> </view>
到這里基本結束了,我們這評分轉換成我們需要的評分數組,在使用模版的地方傳入數據即可。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。