当应用中的 js 都以模块来编写的, 那这个应用就是一个模块化的应用。
当应用中的功能都是多组件的方式来编写的, 那这个应用就是一个组件化的应用,。
一、Vue中使用组件的三大步骤:
二、如何定义一个组件?
使用Vue.extend(options)创建,其中options和new Vue(options)时传入的那个options几乎一样,但也有点区别;
区别如下:
备注:使用template可以配置组件结构。
三、如何注册组件?
四、编写组件标签:
<school>school>
代码:
<body>
<div id="root">
<h1>{{msg}}h1>
<school>school>
div>
body>
<script type="text/javascript">
Vue.config.productionTip = false
//定义组件
const s = Vue.extend({
name:'atguigu',
template:`
学校名称:{{name}}
学校地址:{{address}}
`,
data(){
return {
name:'尚硅谷',
address:'北京'
}
}
})
new Vue({
el:'#root',
data:{
msg:'欢迎学习Vue!'
},
components:{
school:s
}
})
script>
<body>
<div id="root">
div>
body>
<script type="text/javascript">
Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
//定义student组件
const student = Vue.extend({
name:'student',
template:`
学生姓名:{{name}}
学生年龄:{{age}}
`,
data(){
return {
name:'尚硅谷',
age:18
}
}
})
//定义school组件
const school = Vue.extend({
name:'school',
template:`
学校名称:{{name}}
学校地址:{{address}}
`,
data(){
return {
name:'尚硅谷',
address:'北京'
}
},
//注册组件(局部)
components:{
student
}
})
//定义hello组件
const hello = Vue.extend({
template:`{{msg}}
`,
data(){
return {
msg:'欢迎来到尚硅谷学习!'
}
}
})
//定义app组件
const app = Vue.extend({
template:`
`,
components:{
school,
hello
}
})
//创建vm
new Vue({
template:' ',
el:'#root',
//注册组件(局部)
components:{app}
})
script>
或
,Vue解析时会帮我们创建school组件的实例对象,即Vue帮我们执行的:new VueComponent(options)
。1. 一个.vue 文件的组成(3 个部分)
(1)模板页面: 页面模板
(2)JS 模块对象:
<script>
export default {
data() {return {}},
methods: {},
computed: {},
components: {}
}
script>
(3)样式: 样式定义
2. 基本使用
(1)引入组件
(2)映射成标签
(3)使用组件标签