0
点赞
收藏
分享

微信扫一扫

Vue组件化编程④


文章目录

  • ​​单文件组件​​

单文件组件

这也就意味着我们需要把一个个的组件写成​​.vue​​文件。我们知道组件由三个部分组成,部分html代码、css、js。在vue文件中为我们提供了三种标签,去完成每部分的内容:

Vue组件化编程④_javascript

我们现在尝试把上图中的student组件放入到vue文件中去:

<template>
<div>
<h2 class="stu">学生名称:{{studentName}}</h2>
<h2>学生年纪:{{studentAge}}</h2>

</div>
</template>

<script>const student = Vue.extend({
data(){
return {
studentName:'张三',
studentAge:18
}
}
})
export default {
student
}</script>

<style>.stu{
background-color:red;
}</style>

记得要暴露东西,否则引入了之后没有可以用的

如果组件没有样式,我们可以不要style标签,上面代码中的样式是我临时加的

还可以更简洁一点,我们知道Vue.extend()是有简便写发的,然后我们再给组件添加一个名字:

<template>
<div>
<h2 class="stu">学生名称:{{studentName}}</h2>
<h2>学生年纪:{{studentAge}}</h2>

</div>
</template>

<script>export default {
name:'Student',
data(){
return {
studentName:'张三',
studentAge:18
}
}
}</script>

<style>.stu{
background-color:red;
}</style>

接下来我们将以下代码按照单文件组建的方式进行编写:

<body>
<div id="root">
<app></app>
</div>


</body>
<script>//创建student组件
const student = Vue.extend({
template:`
<div>
<h2>学生名称:{{studentName}}</h2>
<h2>学生年纪:{{studentAge}}</h2>

</div>
`,
data(){
return {
studentName:'张三',
studentAge:18
}
}
})


//创建school组件
const school = Vue.extend({
name:'NEFU',
template:`
<div>
<h2>学校名称:{{schoolName}}</h2>
<h2>学校地址:{{schoolAddress}}</h2>
<hr>
</div>
`,
data(){
return {
schoolName:'NEFU',
schoolAddress:'哈尔滨',
}
},
})

//创建app组件
const app = Vue.extend({
components:{
school,
student
},
template:`
<div>
<hello></hello>
<school></school>
<student></student>
</div>

`
})

new Vue({
el:'#root',
//注册组件
components:{
app
},

})</script>

文件结构:

Vue组件化编程④_前端_03


App.vue:

<template>
<div>
<School></School>
<Student></Student>
</div>
</template>

<script>import School from './School.vue'
import Student from './Student.vue'
const app = Vue.extend({
components:{
School,
Student
},
})
export default {
app
}</script>

<style>

</style>

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>

</head>
<body>
<div id="root"></div>
<script type="text/javascript" src="../VueEnvironment/vue.js"></script>
<script src="./main.js"></script>
</body>
</html>

注意这里的引入顺序和位置。不能放在head里面去引入,此时结构还没有被加载!

其实我们这里的引入是没有多大意义的,我们后期会借助脚手架来进行编译。

main.js:

import App from './App.vue'

new Vue({
template:`
<App></App>
`,
el:'#root',
//注册组件
components:{
App
},

})

main.js文件中一般放着vm的代码。并且一般只有App.vue能与他直接对话!

School.vue:

<template>
<div>
<h2>学校名称:{{schoolName}}</h2>
<h2>学校地址:{{schoolAddress}}</h2>
<hr>
</div>
</template>

<script>const school = Vue.extend({
name:'NEFU',
data(){
return {
schoolName:'NEFU',
schoolAddress:'哈尔滨',
}
},
})
export default {
school
}</script>

<style>

</style>

Student.vue:

<template>
<div>
<h2 class="stu">学生名称:{{studentName}}</h2>
<h2>学生年纪:{{studentAge}}</h2>

</div>
</template>

<script>export default {
name:'Student',
data(){
return {
studentName:'张三',
studentAge:18
}
}
}</script>

<style>.stu{
background-color:red;
}</style>

做完这一切之后,我们直接打开index.html文件是没有用的,我们还需要一个强大的工具–​​脚手架​​.


举报

相关推荐

0 条评论