一馆铁、封裝方法
1、封裝方法并導出
將封裝的方法放到util目錄下的js文件中锅睛〔壕蓿可以新建js文件,也可以直接寫在util.js文件中现拒。
通過export導出封裝的方法辣垒。
(1)確認框方法
在新建的msg.js文件中定義確認框方法,并導出具练。
export let $confirm = (content)=>{
return new Promise(resolve=>{
wx.showModal({
content,
success:({confirm})=>{
if(confirm){
resolve()
}
}
})
})
}
(2)消息框方法
在新建的msg.js文件中定義消息框方法乍构,并導出甜无。
export let $msg = (title,icon='success',duration=1500)=>{
wx.showToast({
title,
icon,
duration,
mask:true
})
}
(3)獲取事件參數(shù)的方法
在新建的msg.js文件中定義獲取事件參數(shù)方法扛点,并導出。
export let $key = (e)=>{
return e.currentTarget.dataset
}
2岂丘、導入方法
import是ES6的導入語句陵究。
// 導入msg文件(模塊)中的指定成員
import {$msg,$confirm,$key} from '../../utils/msg'
3、將方法注冊給全局對象wx
直接在頁面使用import導入的方法奥帘,只能在當前頁面使用铜邮。為了實現(xiàn)在所有頁面中都可以使用,可以將方法注冊給全局對象wx寨蹋。
wx對象是微信小程序的全局對象松蒜,在任何地方都可以使用。
(1)注冊語句
wx.$msg = $msg
wx.$confirm = $confirm
(2)在app.js入口文件中導入
注意:注冊給wx對象的方法已旧,需要在app.js文件中導入秸苗,才可使用。這是因為app.js 會先于其他頁面執(zhí)行运褪,所以比較適合處理一些注冊函數(shù)惊楼。
// 導入初始化文件
import './utils/index'
(3)調用方法
wx.方法名(參數(shù))
wx.$msg('刪除成功')
二玖瘸、wx對象發(fā)起請求
1、wx.request() 發(fā)送請求
wx.request({
// 請求接口地址
url: '接口地址',
// 請求參數(shù)
data:{},
// 請求方式 GET/POST
method:"GET",
// 請求成功后的回調
success:({data})=>{
resolve(data)
},
// 請求完成后的回調
complete:()=>{
console.log('請求完成');
}
})
注意:小程序實際使用中檀咙,請求的接口必須都是已經配置過的接口雅倒,在微信公眾平臺中,選擇 開發(fā)管理-服務器域名 進行配置弧可。
開發(fā)階段蔑匣,可以直接在開發(fā)工具中設置“不校驗合法域名”,暫不配置棕诵。
2殖演、封裝請求方法
為了方便請求,可以對wx.request做一個簡單的封裝年鸳,這樣我們再調用的時候就方便了許多趴久。
(1)定義請求方法
export let $request = (url,data={},method='GET')=>{
return new Promise((resolve)=>{
wx.request({
url,
data,
method,
success:({data})=>{
resolve(data)
},
})
})
}
(2)定義get請求方法
export let $get = (url,data={})=>{
return $request(url,data,'GET')
}
(3)定義post請求方法
export let $post = (url,data={})=>{
return $request(url,data,'POST')
}
三、格式化時間 & WXS
將時間戳進行格式化搔确,轉化成我們需要的時間格式彼棍。
例如:將時間戳 1605010831402 格式化成 2020-11-10 20:20:31
1、在后臺對數(shù)據(jù)里的時間戳進行處理
formatTime是utils.js文件中自帶的格式化時間方法膳算,我們可以將該方法注冊給wx對象座硕,就能直接調用。
let data= await wx.$get('Subject/GetSubjects',{section_id:id})
data = data.map(r=>{
return {
Createtime: wx.$formatTime(new Date(parseInt(r.Createtime)))
}
})
2涕蜂、WXS
WXS(WeiXin Script)是小程序的一套腳本語言华匾,結合 WXML,可以構建出頁面的結構机隙。
在wxml頁面中蜘拉,只能在插值{{ }}中寫簡單的js表達式,而不能調用方法有鹿。wxs就是為了能在頁面中使用js而存在的旭旭。
(1)語法
① 變量必須使用var聲明,不支持const或者let葱跋。
② 不支持箭頭函數(shù)持寄。
③ 不可以使用模板字符串,字符串連接用+ 娱俺。
④ 每一個 .wxs 文件和 <wxs> 標簽都是一個單獨的模塊稍味。每個模塊都有自己獨立的作用域。
通過 module.exports 導出內部的私有變量與函數(shù)荠卷。
⑤ <wxs> 標簽中模庐,module屬性值定義標簽的模塊名;src屬性值引入.wxs文件的相對路徑僵朗。
⑥ 生成date對象使用 getDate()赖欣,返回一個當前時間的對象屑彻。不使用new Date()。
(2)編寫在wxml文件中的 <wxs> 標簽內
<wxs module="tools">
var formatTime = function(date) {
date = getDate(parseInt(date))
var year = date.getFullYear()
var month = date.getMonth() + 1
var day = date.getDate()
var hour = date.getHours()
var minute = date.getMinutes()
var second = date.getSeconds()
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
var formatNumber =function(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
module.exports = {
formatTime:formatTime
}
</wxs>
<!-- 在模板中顶吮,對時間數(shù)據(jù)進行處理 -->
<view>{{tools.formatTime(item.Createtime)}}</view>
(3)編寫在wxs文件中社牲,再導入wxml文件
<!-- 導入wxs文件 -->
<wxs module="tools" src="../../wxs/filter.wxs"></wxs>
<!-- 在模板中,對時間數(shù)據(jù)進行處理 -->
<view>{{tools.formatTime(item.Createtime)}}</view>
四悴了、確認框和消息框
1搏恤、wx.showModal() 確認框
title:提示的標題
content:提示的內容
success:接口調用成功的回調函數(shù)∨冉唬回調函數(shù)中的confirm屬性返回true熟空,表示點擊的是確定按鈕,否則是取消按鈕搞莺。
wx.showModal({
content:'是否確定刪除',
success:({confirm})=>{
//confirm返回true息罗,表示點擊的是確定按鈕,否則是取消按鈕
if(confirm){
console.log("刪除成功");
}
})
效果圖:
2才沧、wx.showToast() 顯示消息提示框
title:提示的內容
icon:圖標
duration:消息提示框的顯示時間
mask:是否顯示透明蒙層迈喉,防止觸摸穿透
wx.showToast({
title: '刪除成功',
icon:"success",
duration:1500,
mask:true
})
效果圖:
五、scroll-view
可滾動視圖區(qū)域温圆。使用豎向滾動時挨摸,需要給scroll-view一個固定高度,通過 WXSS 設置 height岁歉。組件屬性的長度單位默認為px得运,2.4.0起支持傳入單位(rpx/px)。
scroll-x:允許橫向滾動锅移。
scroll-y:允許縱向滾動熔掺。
<scroll-view class="left" scroll-y> </scroll-view>