Vue.extend详解,自定义toast弹窗

Vue.extend详解,自定义toast弹窗Vue.extend方法,返回的是一个扩展实例构造器可以理解为组件类的一个构造函数,其属性都为组件内的对应的属性//定义一个组件的构造函数constdivComponent=Vue.extend({ template:`<divv-on:click=”click”>{{text}}</div>`, data(){ return{ text:’helloword’ } }, methods:{ click(){ consol

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Vue.extend方法,返回的是一个扩展实例构造器

可以理解为组件类的一个构造函数,其属性都为组件内的对应的属性

//定义一个组件的构造函数
const divComponent = Vue.extend({ 
   
	template:`<div v-on:click="click">{ { text } }</div>`,
	data() { 
   
		return { 
   
			text: 'hello word'
		}
	},
	methods:{ 
   
		click(){ 
   
			console.log("click")
		}
	}
})
//调用new方法 实例化组件并挂载dom上
new divComponent().$mount('#app');
//或者直接传入一个el参数来挂载
new divComponent({ 
   el:"#app"})
好比当我想自定义一个toast弹窗,即可使用Vue.extend实现
//先定义好toast.vue组件模板 如下
<template>
	<div class="container">
		<div> { 
    text } </div>
	</div>
</template>
//新建toast.js 
import Vue from 'vue';
import toast from './toast.vue'
//创建构造器 将组件放进去
const ToastConstructor =  Vue.extend(toast);
//定一个触发toast显示的方法 并且写好显示的规则、参数等
function showToast(text,duration=2200){ 
   
	const toastDOM = new ToastConstructor({ 
   
		el:document.createElement("div"),
		data(){ 
   
			return{ 
   
				text:text
			}
		}
	})
	//添加到body中
	document.body.appendChild(toastDOM.$el)
	//自动消失
	setTimeout(()=>{ 
   
		let dom = toastDOM.$el
		dom.parentNode.removeChild(dom)
	},duration)
}
//按照vue规则,定义全局方法需要暴露一个 install 方法,如default导出为方法则可当做install使用 因此这样写
function toastRegistry(){ 
   
	Vue.prototype.$toast = showToast
}
export default toastRegistry
//最后在main.js中使用Vue.use(toastRegistry)引用即可
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189942.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 面试之 IO 流及Socket

    Java 面试之 IO 流及SocketJava 面试之 IO 流及Socket

    2022年4月22日
    37
  • web服务器有哪几种语言组合_服务器

    web服务器有哪几种语言组合_服务器  如今的Web服务器有很多种,大家在做项目的时候根据自己的需求进行灵活的选择。下面小编就给大家分享一下目前都有哪些Web服务器。  1.Apache  Apache也被叫做httpd服务器,是目前使用最广泛的web服务器,它被应用于各种平台之中。Apache刚开始被推出的时候有很多的缺陷,如今已经被修复的越来越完善,如果你是web服务器的钻研者,小编建议你一定要学习一下Apache的使用。  2.Nginx  Nginx是Linux平台下的优秀Web服务器,小编以前用过这个服务器,它…

    2022年9月19日
    3
  • 详解九章算法的作者是谁_arrayset

    详解九章算法的作者是谁_arraysetArrayDeque方法很多,而他们按过程划分分为三种,初始化,扩容,CRUD操作。下面依次来说初始化过程中依赖一个核心的函数calculateSize,它的源码如下privatestaticintcalculateSize(intnumElements){intinitialCapacity=MIN_INITIAL_CAPACITY;//Findthebestpoweroftwotoholdelements.

    2022年9月19日
    2
  • cnetos6.4搭建tomcat7

    cnetos6.4搭建tomcat7

    2021年8月30日
    53
  • C++的string转换成int

    C++的string转换成int对于C++的各种相互转换,很多人很是头疼,包括我也是。下面提供一个非常好的转换方法,如下:在C++标准库里面,使用stringstream:(stringstream可以用于各种数据类型之间的转换)#include&lt;sstream&gt;#include&lt;string&gt;std::stringtext="152";intnumber;std::…

    2025年6月25日
    6
  • Maven项目报错:“ SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder ”解决办法「建议收藏」

    Maven项目报错:“ SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder ”解决办法「建议收藏」运行Maven项目时,控制台出现如下图所示的报错信息:问题分析:根据报错提示,我们可以知道出错的原因是“加载类文件org.slf4j.impl.StaticLoggerBinder时失败”,而出错的地方主要是在于slf4j的jar包。官网给出的解决思路如下:Thiserrorisreportedwhentheorg.slf4j.impl.StaticLoggerBinder…

    2025年6月22日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号