Vue组件化开发

代码:

<html>
<head>
	<script type="text/javascript" src="../js/vue.js"></script>
	<title>vue的组件化开发</title>
</head>
<body>
	<template id="cpn">
	  <div>
	    <h2>组件模板抽离</h2>
	    <h3>抽离出来</h3>
	  </div>
	</template>
	<!-- v-model使用案例 -->
	<div id="app1" style="width: 50%">
		<div>
			<h5 >使用步骤:</h5>
			<ul>
				<li>1.创建组件构造器</li> Vue.extend()
				<li>2.注册组件 </li>Vue.comontent()
				<li>3.使用组件</li> 放在作用范围内使用
			</ul>
			<h5 >分类:</h5>
			<ul>
				<li>1.全局组件
					<ul>
						<li>1.多个vue实例都可以使用</li>  
						<li>2.注册方式:  Vue.component('my-tmp', myTmp) </li> 
					</ul>
				</li>  
				<li>2.局部组件
					<ul>
						<li>1.注册在那个实例就只能在那个实例中使用</li>  
						<li>2.注册方式: 直接写vue 的实例中components:{ cmp:cmp } </li> 
				</ul>
			</li> 
		</ul>
	</div>
	<my-tmp></my-tmp>
	<!-- <cmp>app1</cmp> -->使用会报错
</div>
<div id="app2" style="width: 50%">
	<cmp>app2</cmp>
	<cnp3></cnp3>
	<cnp-four></cnp-four>
	<cnp_five></cnp_five>
	<six></six>
</div>
<script type="text/javascript">
		// 1.创建组件构造器
		const myTmp=Vue.extend({
			template:`
			<div>
			<font >组件化开发:</font><br>
			<label   >
			<input type="checkbox"   > 
			</label> 
			</div>
			` 
		})
	    // 2.注册组件 
	    Vue.component('my-tmp', myTmp)  //组件标签名,这里的标签名不能使用大写字母,不然回报没有这个标签的错误
	    const app1=new Vue({
	    	el:"#app1",
	    	data:{
	    		numbers:[],
	    		numbers1:['one','two',"three","four","six","seven","eight","nine","ten"],
	    		sex:"男",
	    		checkboxs:[],
	    		age:0,
	    		trim:"",
	    		selects:['one'],
	    	},
	    	components:{

	    	}
	    })
	    const cmp=Vue.extend({
	    	template:`
	    	<div>
	    	<h5 >世界你好</h5> 
	    	</div>
	    	` 
	    })
	    // 父组件和子组件
	    const cnpOne=Vue.extend({
	    	template:`<h1>parent</h1>`
	    })
	    const cnpTwo=Vue.extend({
	    	template:`<div><cnp1></cnp1><h2>son1</h2></div>`, 		//父子组件引用的时候必须,外边裹一层div,不然报错
	    	components:{
	    		cnp1:cnpOne 
	    	}
	    })
	    const cnpThree=Vue.extend({
	    	template:`<div><cnp2></cnp2><h3>son2</h3></div>`,		//父子组件引用的时候必须,外边裹一层div,不然报错
	    	components:{
	    		cnp2:cnpTwo 
	    	}
	    })
	    // 组件的语法糖方式注册 
	    //1.注册全局组件
	    Vue.component("cnp-four",{
	    	template:"<h1>语法糖方式注册全局组件</h1>"
	    })
	    //1.组件模板抽离测试
	    Vue.component('six', {
		    template: '#cpn'
		  })
	    const app2=new Vue({
	    	el:"#app2",
	    	data:{
	    		sex:"男",
	    	},
	    	components:{
	    		cmp:cmp,
	    		cnp3:cnpThree, 
	    		cnp_five:{					//2.注册局部组件//这里的标签名不能写中划线 - 
	    			template:"<h1>语法糖方式注册局部组件</h1>"
	    		}
	    	}
	    })
</script> 
</body>
</html>	

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值