vue如何使用vue slot封裝公共組件
使用vue slot封裝公共組件
公用子組件:publicSlot
? ? ? <div> ? ? ? ? <div class="top"> ? ? ? ? <h1 class="title">{{title}}</h1> ? ? ? ? ?? ?<slot name="headerRight"> 可以根據(jù)你slot name屬性選擇插槽的位置</slot> ? ? ? ? </div> ? ? ? ? <slot> 這里相當(dāng)于留個(gè)位置,接收父組件傳入的內(nèi)容</slot> ? ? ? </div>
export default { ? ? props: { ? ? title: { ? ? ? type: String ? ? } ? }, ? }
父組件:
? ? ?<!-- 方式審核 --> ? ? ? <publicSlot :title="title"> ? ? ? ? <div class="main_box"> ? ? ? ? ? ? //這里可以寫父組件自定義頁面的內(nèi)容 ? ? ? ? ? <el-form :model="formDatas" label-width="120px"> ? ? ? ? ? ? <el-row> ? ? ? ? ? ? ? <el-col :span="11"> ? ? ? ? ? ? ? ? <el-form-item label="選擇區(qū)域:"> ? ? ? ? ? ? ? ? ? <el-select v-model="formDatas.region"> ? ? ? ? ? ? ? ? ? ? <el-option label="區(qū)域一" value="shanghai"></el-option> ? ? ? ? ? ? ? ? ? ? <el-option label="區(qū)域二" value="beijing"></el-option> ? ? ? ? ? ? ? ? ? </el-select> ? ? ? ? ? ? ? ? </el-form-item> ? ? ? ? ? ? ? </el-col> ? ? ? ? ? ? ? <el-col :span="24"> ? ? ? ? ? ? ? ? <el-form-item label="輸入框:"> ? ? ? ? ? ? ? ? ? <el-input ? ? ? ? ? ? ? ? ? ? type="textarea"? ? ? ? ? ? ? ? ? ? ? v-model="textarea" ? ? ? ? ? ? ? ? ? > ? ? ? ? ? ? ? ? ? </el-input> ? ? ? ? ? ? ? ? </el-form-item> ? ? ? ? ? ? ? </el-col> ? ? ? ? ? ? ?? ? ? ? ? ? ? </el-row> ? ? ? ? ? </el-form> ? ? ? ? </div> ? ? ? ?//這里是插入了一個(gè)按鈕 ? ? ? ?<div slot="headerRight"> ? ? ? ? <el-button ? type="text">操作按鈕</el-button> ? ? ? </div>? ? ? ? </publicSlot>
import publicSlot from '../public/components/publicSlot.vue' export default { ? ? publicSlot }
vue 插槽:
Vue 實(shí)現(xiàn)了一套內(nèi)容分發(fā)的 API,這套 API 的設(shè)計(jì)靈感源自 Web Components 規(guī)范草案,將 元素作為承載分發(fā)內(nèi)容的出口。
- 具名插槽
- 作用域插槽
- 動(dòng)態(tài)插槽
使用slot插槽封裝
1.封裝頭部組件
<template> ? <div class="head_container"> ? ? <slot name="left"></slot> ? ? <div> ? ? ? <span>{{ title }}</span> ? ? </div> ? ? <slot name="right"></slot> ? </div> </template>
export default { ? name: "homeTop", ? //定義props的title屬性 ? props: { ? ? title: String, ? }, }
2.在main.js中全局導(dǎo)出組件
import HeadTop from './views/HeadTop.vue' Vue.component('HeadTop', HeadTop)
3.當(dāng)你要使用組件的時(shí)候 如果只要中間的title ,那么solt插槽就不要使用
<HeadTop title="我的"></HeadTop>
4.如果左右兩邊都需要加?xùn)|西,那么就使用插槽,因?yàn)樵谥岸x了插槽的名字,所以調(diào)用的時(shí)候需要指定插槽的name,判斷你是加在哪里
? ? <HeadTop :title="address.name"> ? ? ? <div class="icon" slot="left"> ? ? ? ? <i class="el-icon-search"></i> ? ? ? </div> ? ? ? <div class="login" slot="right" @click="goToLogin"> ? ? ? ? <span>登錄</span>/ ? ? ? ? <span>注冊(cè)</span> ? ? ? </div> ? ? </HeadTop>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue組件化(ref,props,?mixin,.插件)詳解
這篇文章主要介紹了Vue組件化(ref,?props,?mixin,?插件)的相關(guān)知識(shí),包括ref屬性,props配置項(xiàng)及mixin混入的方式,本文通過示例代碼多種方式相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05在vue中使用inheritAttrs實(shí)現(xiàn)組件的擴(kuò)展性介紹
這篇文章主要介紹了在vue中使用inheritAttrs實(shí)現(xiàn)組件的擴(kuò)展性介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12Vue2.0 實(shí)現(xiàn)頁面緩存和不緩存的方式
今天小編就為大家分享一篇Vue2.0 實(shí)現(xiàn)頁面緩存和不緩存的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11Vue自定義指令實(shí)現(xiàn)checkbox全選功能的方法
下面小編就為大家分享一篇Vue自定義指令實(shí)現(xiàn)checkbox全選功能的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02使用vue-cli創(chuàng)建vue項(xiàng)目介紹
這篇文章介紹了使用vue-cli創(chuàng)建vue項(xiàng)目的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01Vue一個(gè)動(dòng)態(tài)添加background-image的實(shí)現(xiàn)
這篇文章主要介紹了Vue一個(gè)動(dòng)態(tài)添加background-image的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03vue中前進(jìn)刷新、后退緩存用戶瀏覽數(shù)據(jù)和瀏覽位置的實(shí)例講解
今天小編就為大家分享一篇vue中前進(jìn)刷新、后退緩存用戶瀏覽數(shù)據(jù)和瀏覽位置的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09