最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在vue中封裝可復用的組件方法

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

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

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

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

準備工作:vue-cli腳手架工程

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

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

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

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

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

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

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組件掛載到新創(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對象添加$toast方法
export default {
 name: 'hello',
 data () {
 return {
 
 }
 },
 methods:{
 	showToast(){
 		this.$toast();  //現(xiàn)在就可以調用了
 	}
 }
}
</script>

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

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組件掛載到新創(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)在我們在Hello.vue中調用的時候就應該是這樣了:this.$toast('新內容',2000);我們的組toast組件可以正常使用了!

以上這篇在vue中封裝可復用的組件方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

团风县| 平阴县| 巴马| 梓潼县| 五家渠市| 临桂县| 永清县| 光泽县| 呼图壁县| 南京市| 上蔡县| 南江县| 临澧县| 五家渠市| 两当县| 东城区| 措勤县| 潜江市| 磐安县| 绥化市| 阿拉尔市| 城固县| 离岛区| 驻马店市| 宜城市| 大余县| 高要市| 阳朔县| 鄂州市| 大同县| 株洲县| 临武县| 大田县| 大渡口区| 鲜城| 德江县| 牡丹江市| 贺州市| 天气| 金坛市| 凤庆县|