vue+vue-router+axios+element-ui构建vue实战项目之八(引用组件)

在上一节《vue+vue-router+axios+element-ui构建vue实战项目之七(渲染content.vue内容)》中,我们成功渲染出了内容页面。

不过,我们还漏掉了一个重要的东西,不知道大家还记得《vue+vue-router+axios+element-ui构建vue实战项目之三(认识项目文件)》中的components文件夹吗?

回顾一下,里面放的都是项目公用的组件,有header.vue和footer.vue两个文件。

如果我们要在页面中使用header.vue和footer.vue这两个文件怎么办呢?

下面,我们就来说说这个问题。

编写header.vue和footer.vue文件

header.vue文件

1 <template>
2   <div style="background: red">
3     <h3>Vue header</h3>
4   </div>
5 </template>

footer.vue文件

1 <template>
2   <div style="background: blue">
3     <h3>Vue footer</h3>
4   </div>
5 </template>

好了,两个文件的内容都已经编写完成,接下来,就在页面就引用它。

编写App.vue文件

我们经常浏览网页都知道,很多网页的header和footer都是一样的,我们如何才能做到编写一个header和footer,就能在多个页面使用呢?

不多说,直接上代码

 1 <template>
 2   <div id="app">
 3     <myHeader></myHeader>
 4     <router-view></router-view>
 5     <myFooter></myFooter>
 6   </div>
 7 </template>
 8 <script>
 9 import myHeader from './components/header'
10 import myFooter from './components/footer'
11 export default {
12   components: {
13     myHeader, myFooter
14   },
15   name: 'App'
16 }
17 </script>
18 <style lang="scss">
19   @import "./style/style";
20 </style>

大家看到 <myHeader></myHeader> 这个代码的时候肯定很奇怪,这是个什么玩意儿。其实,这是一个自定义组件。我们在其他地方写好了一个组件,然后就可以用这种方式引入进来。

同样 <myFooter></myFooter> 也是一个组件。不再累述。

当然,组件的名字是自定义的,你想怎么取就怎么取,但是千万要主要,不要跟原有的html标签重名。

好,我们再说说这里面的内容。

components: { myHeader,  myFooter }

如上,我们先引入了myHeader 和 myFooter 这两个组件的源文件,这里,我们要把引用的组件给申明到 components 里面去。这样,我们就可以在 template 里面使用了。

上面的代码完成后,保存,打开浏览器,我们就可以看到:

随便点击一条内容,跳转到内容页面:

这样,我们就完成了组件的引用和复用,极大的提升了效率。

当然,我们也可以在不同的页面引用不同的组件,按照同样的方式即可。

大家下来自行试一下,这里就不再赘述了。

到本节,我们vue实战项目基本完成了,感谢大家的阅读!

如果文章中存在错误的地方,麻烦请大家在评论中指正,以免误人子弟,谢谢!
原文地址:https://www.cnblogs.com/zhaoyongblog/p/10485059.html