亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在vue中封裝一個可復用的組件

發布時間:2021-02-26 17:14:33 來源:億速云 閱讀:180 作者:Leah 欄目:web開發

如何在vue中封裝一個可復用的組件?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

文件目錄截圖:

如何在vue中封裝一個可復用的組件

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

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

② toast.js里面用Vue.extend()擴展一個組件構造器,然后通過實例化組件構造器,就可創造出可復用的組件。

最后在toast.js里面導出函數myToast,函數myToast里面的邏輯在代碼里面有解釋;

③ Hello.vue里調用函數,顯示組件。

Toast.vue代碼:

<template>
	<div class="toast" v-if="isShow">
		<div class="toast-div">{{ text }}</div>
	</div>
</template>
<script>
export default{
	data(){
		return {
			text:'內容',
			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) // 返回一個“擴展實例構造器” 
 
let myToast = ()=>{ 
 let toastDom = new ToastConstructor({ 
 el:document.createElement('div') //將toast組件掛載到新創建的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函數
Vue.prototype.$toast = toast;  //給Vue對象添加$toast方法
export default {
 name: 'hello',
 data () {
 return {
 
 }
 },
 methods:{
 	showToast(){
 		this.$toast();  //現在就可以調用了
 	}
 }
}
</script>

通過以上步驟,離真正的toast效果還是有區別的,我們要達到的效果是讓顯示的內容在一段時間后消失,那么,得從toast.js里面修改,得重新寫myToast函數,給他設置兩個傳入參數,一個是顯示的內容,一個是顯示的時間。

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

import Vue from 'vue'; 
import Toast from '@/components/Toast'; //引入組件 
let ToastConstructor = Vue.extend(Toast) // 返回一個“擴展實例構造器” 
 
let myToast = (text,duration)=>{ 
 let toastDom = new ToastConstructor({ 
 el:document.createElement('div') //將toast組件掛載到新創建的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;

關于如何在vue中封裝一個可復用的組件問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

抚宁县| 扎赉特旗| 合阳县| 九寨沟县| 石楼县| 灌南县| 萍乡市| 汉川市| 桃源县| 太仓市| 拜城县| 深圳市| 九江市| 张掖市| 清水河县| 花莲县| 电白县| 霍林郭勒市| 新乐市| 息烽县| 华池县| 孟州市| 揭阳市| 饶阳县| 朝阳县| 西乌珠穆沁旗| 噶尔县| 喀喇沁旗| 分宜县| 松溪县| 灵丘县| 民和| 灌南县| 桐乡市| 武清区| 海原县| 新化县| 十堰市| 裕民县| 息烽县| 徐州市|