摘要:微信小程序封裝了一些基礎(chǔ)的組件,使用起來很方便,但定制化程度不高,日常開發(fā)中難免有一些功能想要做成組件,在其他地方復(fù)用。在網(wǎng)上找了好久,有很多小程序模塊化框架,比如,,但是都不敢用。今天看到一哥們寫的小程序自定義公眾組件,感覺簡單靠譜。
微信小程序封裝了一些基礎(chǔ)的組件,使用起來很方便,但定制化程度不高,日常開發(fā)中難免有一些功能想要做成組件,在其他地方復(fù)用。在網(wǎng)上找了好久,有很多小程序模塊化框架,比如labrador,wx-component,但是都不敢用。一方面這些框架都比較年輕,不敢輕易用到項(xiàng)目中;另一方面改了微信原先的page,app構(gòu)造函數(shù),不確定因素太多,指不定哪天出什么亂子。
今天看到一哥們寫的小程序自定義公眾組件,感覺簡單靠譜。
1、組件頁面template,依賴組件的頁面
2、@import組件樣式
3、組件邏輯:
在組件構(gòu)造函數(shù)中獲取到當(dāng)前頁面對象:
let pages = getCurrentPages() let curPage = pages[pages.length - 1]
然后分別將組件的事件,方法復(fù)制到curPage中:
Object.assign(curPage,_comData,_comMethod)
設(shè)置組件數(shù)據(jù):
curPage.setData({_comData})
登陸組件為例:
項(xiàng)目結(jié)構(gòu)Wechat-APP/ ├─app.js ├─app.json ├─app.wxss ├─component/ │ └─login/ │ ├─login.js │ ├─login.wxml │ └─login.wxss ├─image/ ├─pages/ │ └─index/ └─utils/login.wxml
login.wxss登錄 用戶名: 密碼:
/* login.wxss */ .__lgpanel_mask{ position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.3); display: flex; flex-direction: column; justify-content: center; z-index: 10; } .show{ display: block; } .hide{ display: none; } .__lgpanel{ font-family: "微軟雅黑", "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif; width: 80vw; margin: 0 auto; background: white; border: 2rpx solid #e3e3e3; border-radius: 8rpx; padding: 20rpx; } .__lgpanel_title{ display: block; text-align: center; margin: 10rpx; padding-bottom: 10rpx; border-bottom: 2rpx solid #ff9900; } .__lgpanel_username,.__lgpanel_pwd{ display: flex; flex-direction: row; justify-content: space-between; margin: 40rpx 10rpx; } .__lgpanel_username text,.__lgpanel_pwd text{ flex-shrink: 0; width: 30%; } .__lgpanel_login{ display: flex; justify-content: space-around; }login.js
// 組件數(shù)據(jù) let _comData = { "__lgpanel__.phone":182*****535, "__lgpanel__.password":123456, "__lgpanel__.isHide":true } //組件事件 let _comEvent = { __lgpanel_ok:function(){ console.log("OK") this.__lgpanel_hide() }, __lgpanel_cancel:function(){ console.log("Cancel") this.__lgpanel_hide() } } //方法 let _comMethod = { __lgpanel_show:function(){ this.setData({"__lgpanel__.isHide":false}) }, __lgpanel_hide:function(){ this.setData({"__lgpanel__.isHide":true}) } } //組件類 function LoginPanel(){ let pages = getCurrentPages() let curPage = pages[pages.length - 1] //組件中調(diào)用頁面 this._page = curPage Object.assign(curPage, _comEvent, _comMethod) curPage.setData(_comData) curPage.loginPanel = this return this } export { LoginPanel }在index頁面中使用login組件
1.index.wxml中引入login組件模板
2.index.wxss中引入組件樣式
@import "../../components/login/login.wxss";
3.index.js中注冊組件
import { LoginPanel } from "../../components/login/login" Page({ data: { }, onLoad: function () { new LoginPanel() //注冊組件 }, login: function () { this.__lgpanel_show(); //使用組件方法 } })
最終結(jié)果:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/91386.html
摘要:得益于運(yùn)行階段處理邏輯的設(shè)計(jì),支持將使用的應(yīng)用轉(zhuǎn)換成微信小程序。我們也在考察這一新的跨端方案和微信小程序融合轉(zhuǎn)化的可行性。 作者:京東ARES多端技術(shù)團(tuán)隊(duì) 前言 Alita是一套由京東ARES多端技術(shù)團(tuán)隊(duì)打造的React Native代碼轉(zhuǎn)換引擎工具。它對React語法有全新的處理方式,支持在運(yùn)行時(shí)處理React語法,實(shí)現(xiàn)了React Native和微信小程序之間的主要組件對齊,可以用...
摘要:今天,為了讓大家的項(xiàng)目優(yōu)雅升級(jí),快速接入,給你帶來一份豐盛的遷移指南目錄結(jié)構(gòu)和微信小程序一樣,包含一個(gè)描述整體程序的和多個(gè)描述各自頁面的。 cml 作為真正讓一套代碼運(yùn)行多端的框架,提供標(biāo)準(zhǔn)的MVVM模式,統(tǒng)一開發(fā)各類終端。 同時(shí),擁有各端獨(dú)立的 運(yùn)行時(shí)框架(runtime)、數(shù)據(jù)管理(store)、組件庫(ui)、接口(api)。 此外,cml在跨端能力加強(qiáng)、能力統(tǒng)一、表現(xiàn)一致等方面...
摘要:相比之下,小程序的鉤子函數(shù)要簡單得多。一生命周期先貼兩張圖生命周期小程序生命周期相比之下,小程序的鉤子函數(shù)要簡單得多。的鉤子函數(shù)在跳轉(zhuǎn)新頁面時(shí),鉤子函數(shù)都會(huì)觸發(fā),但是小程序的鉤子函數(shù),頁面不同的跳轉(zhuǎn)方式,觸發(fā)的鉤子并不一樣。 前言 寫了vue項(xiàng)目和小程序,發(fā)現(xiàn)二者有許多相同之處,在此想總結(jié)一下二者的共同點(diǎn)和區(qū)別。相比之下,小程序的鉤子函數(shù)要簡單得多。 寫了vue項(xiàng)目和小程序,發(fā)現(xiàn)二者有...
摘要:相比之下,小程序的鉤子函數(shù)要簡單得多。一生命周期先貼兩張圖生命周期小程序生命周期相比之下,小程序的鉤子函數(shù)要簡單得多。的鉤子函數(shù)在跳轉(zhuǎn)新頁面時(shí),鉤子函數(shù)都會(huì)觸發(fā),但是小程序的鉤子函數(shù),頁面不同的跳轉(zhuǎn)方式,觸發(fā)的鉤子并不一樣。 前言 寫了vue項(xiàng)目和小程序,發(fā)現(xiàn)二者有許多相同之處,在此想總結(jié)一下二者的共同點(diǎn)和區(qū)別。相比之下,小程序的鉤子函數(shù)要簡單得多。 寫了vue項(xiàng)目和小程序,發(fā)現(xiàn)二者有...
摘要:資源開發(fā)文檔是一套完全免費(fèi)的微信小程序開發(fā)框架,擴(kuò)展了小程序的能力。推薦有一些不錯(cuò)的解決方案封裝封裝跨頁面事件通訊監(jiān)聽數(shù)據(jù)變化開發(fā)如何在微信小程序的頁面間傳遞數(shù)據(jù)需要時(shí)可以快速過一遍。微信小程序回調(diào),,,的使用例子供參考 這篇文章主要記錄我做小程序「輕算賬」過程中遇到的一些問題和解決方案,就當(dāng)是做個(gè)總結(jié),也希望其中有能夠幫助到他人的信息。 showImg(https://segment...
摘要:在這一步,實(shí)例已完成以下的配置數(shù)據(jù)觀測,屬性和方法的運(yùn)算,事件回調(diào)??梢灾苯訉懙葮?biāo)簽的寫法之前會(huì)的工程師上手框架的成本較低 簡介 1.美團(tuán)工程師推出的基于Vue.js封裝的用于開發(fā)小程序的框架2.融合了原生小程序和Vue.js的特點(diǎn)3.可完全組件化開發(fā) 特點(diǎn) 1.組件化開發(fā)2.完成的Vue.js開發(fā)體驗(yàn)(前提是熟悉Vue)3.可使用Vuex管理狀態(tài)4.Webpack構(gòu)建項(xiàng)目5.最終H5...
閱讀 3527·2021-11-23 10:13
閱讀 895·2021-09-22 16:01
閱讀 935·2021-09-09 09:33
閱讀 670·2021-08-05 09:58
閱讀 1748·2019-08-30 11:14
閱讀 2025·2019-08-30 11:02
閱讀 3301·2019-08-29 16:28
閱讀 1515·2019-08-29 16:09