vue基础之组件3

利用vue组件实现一个toast的显示,然后消失

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="../7-16/js/vue.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
			.toast{
				position: fixed;
				left: 50%;
				top: 50%;
				width: 200px;
				height: 100px;
				text-align: center;
				line-height: 100px;
				color: #FFFFFF;
				background: #000;
				opacity: .6;
			}
		</style>
	</head>
	<body>
		<div id="out">
			<button @click="tap()">登录</button>
		</div>
	</body>
	<script type="text/javascript">
		//创建组件,注册一个组件-----------组件的本质是JS对象,功能性组件
		var toast = Vue.component("toast",{
			template:"<div v-if='isshow' class='toast'>{{title}}</div>",
			data:function(){
				return{
					title:"登录成功",
					isshow:true,
					duration:2000
				}
			}
		});
		//封装函数,功能是调用组件
		var Toast = function(){
			//实例化组件-----组件对象实例化
			var toastVue = new toast({
				//el加载当前节点,没有就创建一个
				el:document.createElement("div")
			});
			document.body.appendChild(toastVue.$el);
			//自动消失
			setTimeout(function(){
				toastVue.isshow=false
			},toastVue.duration)
		};
		
		var vm = new Vue({
			el:"#out",
			methods:{
				tap(){
					Toast()
				}
			}
		})
	</script>
</html>

猜你喜欢

转载自blog.csdn.net/keep789/article/details/81914469