Vue,在vue-cli上进行组件页面切换

本文介绍了在Vue项目中实现组件页面切换的两种方法:动态组件和使用路由。动态组件通过在components内定义子组件并在app.vue中根据需求切换;而使用路由切换则涉及创建router文件夹,配置index.js,注入router到main.js,并通过npm安装vue-router插件来实现页面跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进行组件切换的两种方法:

一.动态组件

1.在components内自定义两个子组件并载入到根组件上
student.vue:

<template>
  <div id="student">
    <h3>student list</h3>
    <ul>
      <li v-for="(item, index) in students" :key="index">
        {{ item }}
      </li>
    </ul>
  </div>
</template>
<script>
export default {
  name: "student",
  data() {
    return {
      students: [
        {
          id: 1,
          name: "lisi",
          age: 12,
        },
        {
          id: 2,
          name: "xiaohong",
          age: 11,
        },
        {
          id: 1,
          name: "zhangsan",
          age: 13,
        },
      ],
    };
  },
  methods: {},
};
</script>
<style scoped>
</style>
    

teacher.vue

<template>
  <div id="teacher">
    <h3>teacher-list</h3>
    <ul>
      <li v-for="item in teachers" :key="item.id">
        {{ item }}
      </li>
    </ul>
  </div>
</template>
<script>
export default {
  name: "teacher",
  data() {
    return {
      teachers: [
        {
          id: 1,
          name: "lisi-teacher",
          age: 22,
        },
        {
          id: 2,
          name: "lisi-teacher",
          age: 25,
        },
        {
          id: 3,
          name: "lisi-teacher",
          age: 20,
        },
      ],
    };
  },
  methods: {},
};
</script>
<style scoped>
</style>

在app.vue内导入

import student from "./components/student.vue";
import teacher from "./components/teacher.vue";
export default {
  name: "App",
  data() {
    return {
      currentCom: HelloWorld,
    };
  },
  components: {
    HelloWorld,
    student,
    teacher,
  },
};

2.在template内添加一个动态组件,通过点击按钮切换动态组件内载入的内容

<button @click="currentCom = 'student'">student</button>
    <button @click="currentCom = 'teacher'">teacher</button>
    <button @click="currentCom = 'HelloWorld'">hello</button>
    <component :is="currentCom"></component>

打开页面在这里插入图片描述点击按钮就会展现相应子组件
在这里插入图片描述

二、使用路由切换

1.在src文件夹下新建一个router文件夹,里面创建一个index.js文件
在这里插入图片描述2.index.js内引入vue+vue-router:

import Vue from 'vue';
import Router from 'vue-router';
import student from '../components/student.vue'
import teacher from '../components/teacher.vue'

Vue.use(Router);

export default new Router({
    mode: 'history',
    routes: [{
            path: '/student',
            component: student
        }, {
            path: '/teacher',
            component: teacher
        }

    ]
});

3.挂载注入:
在main.js中:

import router from './router'

在new Vue中注入router
在这里插入图片描述
4.-npm run serve 启动项目

如果出现这个报错就按照提示输入npm install --save vue-router下载插件
在这里插入图片描述效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值