1.组件与复用
- 组件与创建Vue实例的方法类似,需要注册后才可以使用。
1.1 全局注册组件
- template 的 DOM 结构必须被一个元素包含,如果直接写成 “这里是组件的内容”,不带 "
<div></div>" 是无法渲染的。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>全局注册组件</title>
<script type="text/javascript" src="./vue.min.js"></script>
</head>
<body>
<div id="app">
<my-component></my-component>
</div>
<script>
Vue.component('my-component', {
template: '<div>这里是组件的内容</div>'
});
var app = new Vue({
el: '#app'
})
</script>
</body>
</html>
1.2 局部注册组件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>局部注册组件</title>
<script type="text/javascript" src="./vue.min.js"></script>
</head>
<body>
<div id="app">
<my-component></my-component>
</div>
<script>
var Child = {
template: '<div>这里是组件的内容</div>'
};
var app = new Vue({
el: '#app',
components: {
'my-component': Child
}
})
</script>
</body>
</html>
2.使用props传递数据
2.1 基本用法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script type="text/javascript" src="./vue.min.js"></script>
</head>
<body>
<div id="app">
<my-component message="来自父组件的数据"></my-component>
</div>
<script>
Vue.component('my-component', {
props: ['message'],
template: '<div>{{ message }}</div>',
});
var app = new Vue({
el: '#app'
})
</script>
</body>
</html>