组件
- 组件 (Component) 是 Vue.js 最强大的功能之一
- 组件可以扩展 HTML 元素,封装可重用的代码
组件注册
全局组件
Vue.component(componentName, { })
参数1:标签名称,参数2:选项对象
全局组件在任何vue实例中都可以使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="app">
<!-- 组件名称-->
<my-component></my-component>
</div>
</body>
<!-- 引入vue.js -->
<script src="./vue.js"></script>
<script>
//全局注册组件
//第一个参数自定义标签名
Vue.component('my-component', {
//这里的data是一个函数,返回的是一个对象
data: function () {
return {
msg: '全局组件'
}
},
template: '<div>{{msg}}</div>'
})
//创建vue实例
var vm = new Vue({
el: '#app',
data: {
},
methods: {
},
})
</script>
</html>
局部注册
只能在当前vue实例中使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="app">
<!-- 组件名称-->
<my-component></my-component>
</div>
</body>
<!-- 引入vue.js -->
<script src="./vue.js"></script>
<script>
//创建vue实例
var vm = new Vue({
el: '#app',
data: {
},
methods: {
},
components: {
//可以将该组件放入外部,这里直接引用
'my-component': {
//这里的data是一个函数,返回的是一个对象
data: function () {
return {
msg: '全局组件'
}
},
template: '<div>{{msg}}</div>'
}
}
})
</script>
</html>
使用组件时注意事项:
- 组件中的data必须是函数,并且需要返回一个对象,对象中就是组间中需要的参数
- 组件模板可以使用模板字符串
- 组件模板必须是一个根标签
- 组件放置到vue实例上方