微信小程序各類型的自定義組件篇


最近為了趕上潮流和工作的需要我也開始搗鼓小程序項目。一開始小程序給我得感覺是非常強大的,有比較完善的API和相應的組件,而且用起來挺簡單的,但官方限制太多,如wx.showToast這個API用起來感覺只能按照官方的樣式,所以就自己通過網上大神的方法自己寫了一個自定義的toast組件,不好的地方請多多指教。

源碼下載地址:https://github.com/kjs-zjl/WeChat

首先,我們來看看官方給的wx.showToas這個API的展示形式:

或者是loading狀態的:

它的用法也非常簡單,直接copy官方API代碼就直接可以使用,官方代碼:

非常簡潔,更多可以去官網學習,在這里就不多講了。官方給的這個API中有提到如何更改提示的內容,但是除了這個好像並沒有提到如何自定義樣式,及顯示自定義圖標等方法,所以在項目上實用之處就非常少了,我總不能彈出一個報錯的提示框也是這兩種當中選一種吧?為此,我只能自己根據需求開發一個自定義的toast組件。

 那么下面我就分享一個自己寫的toast組件(全局):

1、在component目錄中新建一個toastTest目錄,如圖:

 

2、在toastTest.wxml文件中新建一個template(自定義組件模塊),代碼如圖所示:

3、至於顯示的樣式我就不做解釋了,直接看代碼,當然你們可以根據自己的方式書寫樣式:

4、toastTest.js的代碼如下:

在_comData中你可以添加你想展示的內容,如:title、pic等都可以往里面塞,只是你要在樣式表中做相應的樣式處理即可;toastPannel對象中是包含了一些自定義的方法,如我的代碼中有切換組件顯示隱藏的開關和接收到的顯示內容;ToastPannel是一個構造函數,在這里需要通過官方給出的getCurrentPages()方法獲取到要使用組件的當前頁,並且將該組件的data和相應的方法附加到當前頁面中,方便當前頁訪問;最后將該組件的構造函數暴露出來,讓其他頁面可以直接引用。

6、全局引用,在項目中的app.js中將組件腳本引入供全局使用,引入方法:接收暴露出來的構造函數

並且全局引入組件的樣式表:

7、在需要使用該組件的頁面將模塊引入,如我在toastDemo目錄中的toast.wxml文件中引入組件的模塊:

8、在當前頁面的js文件中實例組件的構造函數,如我的toast.js文件中實例代碼:

9、toast自定義組件實現的效果:

上述只是分享了全局引用,如果想局部引用的話,原理也是一樣的,只是把全局引入變為局部引入即可,以上即是本小白的分享,還請各大牛請噴。

注:這只是該組件展示最簡單的內容,自己可以添加喜歡的東西,抱歉!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM