欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在vue中封裝可復(fù)用的組件方法

 更新時(shí)間:2018年03月01日 16:05:23   作者:小步的前端之路  
下面小編就為大家分享一篇在vue中封裝可復(fù)用的組件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

本次封裝的組件以toast組件為例

以前使用移動(dòng)端ui插件時(shí),通過(guò)一句代碼比如 $.toast( ‘ 需要顯示的內(nèi)容 ' ),從而在頁(yè)面上展示這段文字,并在一定時(shí)間后消失。

現(xiàn)在我們也嘗試自己封裝toast組件。

準(zhǔn)備工作:vue-cli腳手架工程

先看一下涉及到的文件目錄截圖:

這次的封裝主要涉及的文件是Toast.vue toast.js Hello.vue,主要思路如下:

① Toast.vue是我們要使用的toast組件;

② toast.js里面用Vue.extend()擴(kuò)展一個(gè)組件構(gòu)造器,然后通過(guò)實(shí)例化組件構(gòu)造器,就可創(chuàng)造出可復(fù)用的組件。

最后在toast.js里面導(dǎo)出函數(shù)myToast,函數(shù)myToast里面的邏輯在代碼里面有解釋;

③ Hello.vue里調(diào)用函數(shù),顯示組件。

Toast.vue代碼:

<template>
	<div class="toast" v-if="isShow">
		<div class="toast-div">{{ text }}</div>
	</div>
</template>
<script>
export default{
	data(){
		return {
			text:'內(nèi)容',
			isShow:true,
			duration:1500
		}
	}
}
</script>
<style>
*{
	margin: 0;
	padding: 0;
}
.toast{
 	position: fixed;
 	left: 50%;
 transform: translate(-50%, 0);
 margin-top: 5rem;
 background: #000000;
 line-height: 0.7rem;
	color: #FFFFFF;
	padding: 0 0.2rem;
	border-radius: 0.2rem;
}
</style>

Toast.js代碼:

import Vue from 'vue'; 
import Toast from '@/components/Toast'; //引入組件 
let ToastConstructor = Vue.extend(Toast) // 返回一個(gè)“擴(kuò)展實(shí)例構(gòu)造器” 
 
let myToast = ()=>{ 
 let toastDom = new ToastConstructor({ 
 el:document.createElement('div') //將toast組件掛載到新創(chuàng)建的div上 
 }) 
 document.body.appendChild( toastDom.$el ) //把toast組件的dom添加到body里 
} 
export default myToast; 

Hello.vue代碼:

<template>
 <div class="hello">
 <button @click="showToast">按鈕</button>
 </div>
</template>
<script>
import Vue from 'vue';
import toast from './js/toast'; //引入toast函數(shù)
Vue.prototype.$toast = toast;  //給Vue對(duì)象添加$toast方法
export default {
 name: 'hello',
 data () {
 return {
 
 }
 },
 methods:{
 	showToast(){
 		this.$toast();  //現(xiàn)在就可以調(diào)用了
 	}
 }
}
</script>

通過(guò)以上步驟,離真正的toast效果還是有區(qū)別的,我們要達(dá)到的效果是讓顯示的內(nèi)容在一段時(shí)間后消失,那么,得從toast.js里面修改,得重新寫myToast函數(shù),給他設(shè)置兩個(gè)傳入?yún)?shù),一個(gè)是顯示的內(nèi)容,一個(gè)是顯示的時(shí)間。

toast.js修改后的代碼如下:

import Vue from 'vue'; 
import Toast from '@/components/Toast'; //引入組件 
let ToastConstructor = Vue.extend(Toast) // 返回一個(gè)“擴(kuò)展實(shí)例構(gòu)造器” 
 
let myToast = (text,duration)=>{ 
 let toastDom = new ToastConstructor({ 
 el:document.createElement('div') //將toast組件掛載到新創(chuàng)建的div上 
 }) 
 document.body.appendChild( toastDom.$el ) //把toast組件的dom添加到body里 
 
 toastDom.text = text; 
 toastDom.duration = duration; 
 
 // 在指定 duration 之后讓 toast消失 
 setTimeout(()=>{ 
 toastDom.isShow = false; 
 }, toastDom.duration); 
} 
export default myToast; 

那么,現(xiàn)在我們?cè)贖ello.vue中調(diào)用的時(shí)候就應(yīng)該是這樣了:this.$toast('新內(nèi)容',2000);我們的組toast組件可以正常使用了!

以上這篇在vue中封裝可復(fù)用的組件方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何通過(guò)Vue實(shí)現(xiàn)@人的功能

    如何通過(guò)Vue實(shí)現(xiàn)@人的功能

    這篇文章主要介紹了如何通過(guò)vue實(shí)現(xiàn)微博中常見的@人的功能,同時(shí)增加鼠標(biāo)點(diǎn)擊事件和一些頁(yè)面小優(yōu)化。感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • Vue中子組件的顯示與隱藏方式

    Vue中子組件的顯示與隱藏方式

    這篇文章主要介紹了Vue中子組件的顯示與隱藏方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue3中關(guān)于getCurrentInstance的大坑及解決

    Vue3中關(guān)于getCurrentInstance的大坑及解決

    這篇文章主要介紹了Vue3中關(guān)于getCurrentInstance的大坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 基于Vue中使用節(jié)流Lodash throttle詳解

    基于Vue中使用節(jié)流Lodash throttle詳解

    今天小編就為大家分享一篇基于Vue中使用節(jié)流Lodash throttle詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • vue mint-ui tabbar變組件使用

    vue mint-ui tabbar變組件使用

    這篇文章主要介紹了vue mint-ui tabbar變組件使用方法及實(shí)例代碼,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-05-05
  • Vue應(yīng)用中使用xlsx庫(kù)實(shí)現(xiàn)Excel文件導(dǎo)出的詳細(xì)步驟

    Vue應(yīng)用中使用xlsx庫(kù)實(shí)現(xiàn)Excel文件導(dǎo)出的詳細(xì)步驟

    本文詳細(xì)介紹了如何在Vue應(yīng)用中使用xlsx庫(kù)來(lái)導(dǎo)出Excel文件,包括安裝xlsx庫(kù)、準(zhǔn)備數(shù)據(jù)、創(chuàng)建導(dǎo)出方法、觸發(fā)導(dǎo)出操作和自定義Excel文件等步驟,xlsx庫(kù)提供了強(qiáng)大的API和靈活的自定義選項(xiàng),使得處理Excel文件變得簡(jiǎn)單而高效
    2024-10-10
  • Vue使用screenfull實(shí)現(xiàn)全屏效果

    Vue使用screenfull實(shí)現(xiàn)全屏效果

    這篇文章主要為大家詳細(xì)介紹了Vue使用screenfull實(shí)現(xiàn)全屏,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • VSCode插件安裝完成后的配置(常用配置)

    VSCode插件安裝完成后的配置(常用配置)

    這篇文章主要介紹了VSCode插件安裝完成后的配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Vue修改Dom不生效的解決

    Vue修改Dom不生效的解決

    這篇文章主要介紹了Vue修改Dom不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue3+ElementPlus 表單組件的封裝實(shí)例

    Vue3+ElementPlus 表單組件的封裝實(shí)例

    這篇文章主要介紹了Vue3+ElementPlus 表單組件的封裝實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評(píng)論