在project目录下创建components文件夹,然后将所有子组件放入components文件夹下
image.png

1 多组件嵌套使用

(1) Child1.vue

  1. <template>
  2. <div>子组件1</div>
  3. </template>
  4. <script>
  5. // export default {
  6. // }
  7. </script>
  8. <style>
  9. </style>

(2) Child2.vue

  1. <template>
  2. <div>子组件2</div>
  3. </template>
  4. <script>
  5. // export default {
  6. // }
  7. </script>
  8. <style>
  9. </style>

(3) App.vue

  1. <template>
  2. <div>单文件组件 {{name}}
  3. <Child1></Child1>
  4. <Child2></Child2>
  5. </div>
  6. </template>
  7. <script>
  8. import Child1 from "./compenents/Child1.vue"
  9. import Child2 from "./compenents/Child2.vue"
  10. export default {
  11. data:function(){
  12. return {name: "python"}
  13. },
  14. components:{
  15. Child1,
  16. Child2,
  17. }
  18. }
  19. </script>
  20. <style>
  21. div{background-color: aqua;}
  22. </style>

image.png

2 多组件路由使用

使用路由形式将多个单文件组件组合在一起

(1) 定义路由目录和路由文件

  1. mkdir router
  2. cd router/
  3. touch router.js

(2) 编写路由文件router.js

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import Child1 from '../compenents/Child1.vue'
  4. import Child2 from '../compenents/Child2.vue'
  5. // 指定Vue使用路由
  6. Vue.use(Router)
  7. // 指定路由规则
  8. export default new Router({
  9. routes:[
  10. {
  11. path:'/child1',
  12. component:Child1,
  13. },
  14. {
  15. path:'/child2',
  16. component:Child2,
  17. },
  18. ]
  19. })

(3) 在main.js中使用路由

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3. //导入定义好的路由
  4. import router from './router/router.js'
  5. new Vue({
  6. el: '#app',
  7. router, // 使用路由
  8. // 渲染单文件组件
  9. render: function(create){
  10. return create(App)
  11. }
  12. })

(4) 在App.vue中指定路由标签

  1. <template>
  2. <div>单文件组件 {{name}}
  3. <!-- 记载路由标签 -->
  4. <router-view></router-view>
  5. </div>
  6. </template>
  7. <script>
  8. import Child1 from "./compenents/Child1.vue"
  9. import Child2 from "./compenents/Child2.vue"
  10. export default {
  11. data:function(){
  12. return {name: 'python'}
  13. },
  14. components:{
  15. Child1,
  16. Child2,
  17. }
  18. }
  19. </script>
  20. <style>
  21. div{background-color: aqua;}
  22. </style>

image.png