uniapp 封裝組件的方法實(shí)例分析
最近研究了一下uniapp 的組件封裝 以及 引入組件的頁(yè)面(父級(jí)) 和 組件封裝的頁(yè)面(子級(jí))的傳參以及 事件交互 ,其實(shí)還是很簡(jiǎn)單的。
父級(jí)頁(yè)(主要的動(dòng)作有組件的引入和事件的觸發(fā))
<!--viwe部分-->
<template>
<view>
<!--調(diào)用組件 組件的屬性 數(shù)據(jù)屬性前面加 : 符號(hào) 事件加 @ 符號(hào) 因?yàn)楦讣?jí)頁(yè)面無(wú)法直接改變子頁(yè)面參數(shù) 可通過(guò)ref屬性可調(diào)用子頁(yè)的方法改變參數(shù)值 -->
<Assembly :TitleData="name" @trigger="GetData" ref="mySon">
<!-- 如果父級(jí)頁(yè)面需要在組件中間加入代碼 需要子頁(yè) 插入的地方加上<slot></slot> -->
</Assembly>
<!--調(diào)用組件-->
</view>
</template>
<!--js部分 在這里聲明注冊(cè)組件-->
<script>
//只要組件安裝在項(xiàng)目的components目錄下或uni_modules目錄下,并符合components/組件名稱/組件名稱.vue目錄結(jié)構(gòu)。就可以不用引用、注冊(cè),直接在頁(yè)面中使用。
import Assembly from '@/components/assembly'
export default {
components: {
Assembly
},
data() {
return {
name:"" //這里的數(shù)據(jù)類型根據(jù)子級(jí)頁(yè)定義
}
},
methods: {
GetData(){
console.log(觸發(fā)事件了)
//這里觸發(fā)父級(jí)事件 通過(guò)綁定名稱mySon 直接執(zhí)行子頁(yè)方法foumr()
t.$refs.mySon.foumr();
}
}
}
</script>到這里 組件的調(diào)用 引入 注冊(cè) 以及 數(shù)據(jù)和事件 基本 搞定了 然后來(lái)看下面
子頁(yè)面(組件的存放和組件事件處理)
<template>
<view>
<view @click="SetName">姓名:{{TitleData}}</view>
<view>性別:{{gender}}</view>
<!--使用slot組件聲明插入代碼的位置-->
<slot></slot>
</view>
</template>
<script>
export default {
//需要給父頁(yè)傳值的參數(shù)都放在props里面 每個(gè)參數(shù)作為一個(gè)對(duì)象 都需要聲明 傳值的類型 type 以及內(nèi)容 default 沒(méi)有默認(rèn)值時(shí)為空 type不可為空 ,如參數(shù)的值無(wú)需 交互 可直接寫在 data=>return 里面
props: {
//這里定義的參數(shù)名稱 在父頁(yè)作為組件的屬性用來(lái)綁定參數(shù)
TitleData:{
type:Array,
default:""
}
},
data() {
return {
gender:"男女"
};
},
methods: {
SetName(){
// 在這里定義父頁(yè)觸發(fā)組件事假的屬性名 trigger 后面可以傳值 index
this.$emit('trigger',index)
},
},
};
</script>相關(guān)文章
JS中BroadcastChannel瀏覽器原生跨標(biāo)簽頁(yè)通信
在現(xiàn)代Web應(yīng)用開(kāi)發(fā)中,跨標(biāo)簽頁(yè)通信是一個(gè)常見(jiàn)需求,本文就來(lái)詳細(xì)的介紹一下JS中BroadcastChannel瀏覽器原生跨標(biāo)簽頁(yè)通信,感興趣的可以了解一下2026-03-03
javascript實(shí)現(xiàn)點(diǎn)擊星星小游戲
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊星星小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
高性能JavaScript循環(huán)語(yǔ)句和條件語(yǔ)句
這篇文章主要為大家介紹了高性能JavaScript循環(huán)語(yǔ)句和條件語(yǔ)句,感興趣的小伙伴們可以參考一下2016-01-01
JavaScript面向?qū)ο蟮膶?shí)現(xiàn)方法小結(jié)
這篇文章主要介紹了JavaScript面向?qū)ο蟮膶?shí)現(xiàn)方法,實(shí)例總結(jié)了兩種常見(jiàn)的面向?qū)ο蟮膶?shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
DOM_window對(duì)象屬性之--clipboardData對(duì)象操作代碼
clipboardData 對(duì)象提供了對(duì)于預(yù)定義的剪貼板格式的訪問(wèn),以便在編輯操作中使用。2011-02-02
一款JavaScript壓縮工具:X2JSCompactor
一款JavaScript壓縮工具:X2JSCompactor...2007-06-06
JavaScript實(shí)現(xiàn)下載base64數(shù)據(jù)并兼容低版本
這篇文章主要為大家詳細(xì)介紹了如何使用JavaScript實(shí)現(xiàn)下載base64數(shù)據(jù)并兼容低版本,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-12-12

