Vue组件化开发1
组件(Component)是 Vue.js 最强大的功能之一。
组件可以扩展 HTML 元素,封装可重用的代码。
组件使用的基本流程
- 创建组件构造器对象
- 注册组件
- 使用组件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<my-cpn></my-cpn>
</div>
<script src="../js/vue.js"></script>
<script>
// 1、创建组件构造器对象
const cpnC = Vue.extend({
template: `
<div>
<h2>我是标题</h2>
<p>我是内容,111</p>
<p>我是内容,222</p>
</div>
`
})
//2、注册组件
Vue.component('my-cpn',cpnC)
//3、使用组件
const app = new Vue({
el: '#app',
data:{
}
})
</script>
</body>
</html>
上面的代码构造了一个名为cpnC的组件对象,并且通过Vue. Component对该组件对象进行了全局注册,最后根据注册时的标签名称直接使用。
全局注册语法如下:
Vue.component(tagName, options)
全局组件和局部组件的注册
全局组件意味着可以在多个Vue实例下面使用,可以通过Vue.component进行注册
局部组件以为着只能在当前注册的Vue实例里面使用,可以通过构造Vue实例时在components中注册
具体代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<cpn></cpn>
{{message}}搜索
</div>
<div id="app2">
<cpn></cpn>
</div>
<script src="../js/vue.js"></script>
<script>
// 1、创建组件构造器
const cpnC = Vue.extend({
template: `
<div>
<h2>我是标题</h2>
<p>我是内容,111</p>
<p>我是内容,222</p>
</div>
`
});
//2、注册组件(全局组件,意味着可以在多个Vue实例下面使用)
// Vue.component('cpn', cpnC);
// 在Vue实例里面的components里面注册局部组件
const app = new Vue({
el: '#app',
data:{
message: '你好'
},
components: {
cpn: cpnC
}
})
const app2 = new Vue({
el: '#app2',
data:{
}
})
</script>
</body>
</html>
父组件和子组件
这个就相当于在一个组件之中注册并使用了另一个组件,组件之间的嵌套使用,具体代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
<cpn2></cpn2>
</div>
<script src="../js/vue.js"></script>
<script>
// 1、创建第一个组件构造器(子组件)
const cpnC1 = Vue.extend({
template: `
<div>
<h2>我是标题1</h2>
<p>我是内容,111</p>
</div>
`
});
// 2、创建第二个组件构造器(父组件)
const cpnC2 = Vue.extend({
template: `
<div>
<h2>我是标题2</h2>
<p>我是内容,222</p>
<cpn1></cpn1>
</div>
`,
// 在父组件中注册子组件
components: {
cpn1: cpnC1
}
});
const app = new Vue({
el: '#app',
data:{
},
components: {
cpn2: cpnC2
}
})
</script>
</body>
</html>
以上为个人见解,如有错误的地方,麻烦提醒下,万分感谢。

浙公网安备 33010602011771号