组件注册 —— Vue 学习笔记(九)

组件是可复用的 Vue 实例,我们可以在一个通过 new Vue 创建的根实例当中,使用根实例创建之前注册的组件。

因为组件是 Vue 实例,所以它们与 new Vue 接受相同的选项,例如:data、computed、watch、methods 以及生命周期钩子等,仅有的例外是像 el 这样根实例特有的选项。


全局注册组件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>全局注册组件</title>
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<count-button></count-button>
		</div>
		<script>
			Vue.component('count-button', {
				data: function() {
					return {
						count: 0
					}
				},
				template: "<button v-on:click='count++'>click me : {{ count }}</button>"
			})
			let vm = new Vue({
				el: '#app',
			})
		</script>
	</body>
</html>

Vue.component() 用于注册或获取全局组件,'count-button' 就是组件的名字,它是 Vue.component() 方法的第一个参数,我们在 html 中把它当作标签来引用就可以。

由于组件也是 Vue 实例,所以它也可以有 data 等(一个组件的 data 选项必须是一个函数,可以维护一份被返回对象的独立拷贝),template 就是这个组件在 dom 中渲染的形式:

template: "<button v-on:click='count++'>click me : {{ count }}</button>"


组件可以复用:

 


不同的组件可以在各自内部互相使用:

效果:


使用子组件:

效果:

 


局部注册组件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>全局注册组件</title>
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<component-a></component-a>
			<component-b></component-b>
		</div>
		<script>
			let componentA = {
				template: '<h3>I am title A</h3>'
			};
			let componentB = {
				template: '<h3>I am title B</h3>'
			}
			let vm = new Vue({
				el: '#app',
				components: {
					'component-a': componentA,
					'component-b': componentB
				}
			})
		</script>
	</body>
</html>

效果:

我们通过 JavaScript 对象定义组件后,在 Vue 实例的 components 选项中定义要使用的组件。

在 components 中,property 名就是自定义元素的名字,property 值就是这个组件的选项对象。

局部注册的组件在其子组件中不可用,如果想要使用其他局部注册组件,可以:

效果:


在全局注册组件中使用局部注册组件:

效果:

在局部注册组件中使用全局注册组件:

效果:


组件是一个特殊的 Vue 实例!


组件的模板语法

效果:

这里我们使用了模板字符串去将模板内容包含在一个父元素内,等价于:

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值