这篇文章简单编写一下主页功能。

主页功能主要有一个导航栏构成,导航栏通过路由跳转的方式分别跳转到“商品列表”、“购物车”、“咨询列表”、“个人信息”等不同的组件。

1.创建Home组件

基础代码参考如下:

<template>
  <div>
    <Header></Header>
  </div>
  <div>
    <el-menu
      :default-active="activeIndex2"
      class="el-menu-demo"
      mode="horizontal"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b"
      @select="handleSelect"
    >
      <el-menu-item index="1">商品列表</el-menu-item>
      <el-menu-item index="2">购物车</el-menu-item>
      <el-menu-item index="3">资讯信息</el-menu-item>
      <el-menu-item index="4">我的信息</el-menu-item>
    </el-menu>
  </div>

  <div>
    <router-view></router-view>
  </div>
</template>

<script>
import Header from "../components/Header.vue";

export default {
  name: "index",
  data() {
    return {};
  },
  components: {
    Header,
  },
  methods: {},
};
</script>

<style  >
</style>

在路由信息中引入home组件

基础效果如下:

2.修改Home组件逻辑

el-menu组件跳转的方式有两种,一种是 通过 router进行跳转,比如下面这样:

<el-menu
active-text-color="#ffd04b"
background-color="#545c64"
class="el-menu-vertical-demo"
text-color="#fff"
router
:default-active="$route.path"
>
<el-menu-item index="/home/list">
  <el-icon><icon-menu /></el-icon>
  <span>文章管理</span>
</el-menu-item>
<el-menu-item index="/home/Art">
  <el-icon><discount /></el-icon>
  <span>文章分类</span>
</el-menu-item>
</el-menu>

另外一种就是在item中加入click事件,比如这样:

  <el-menu
      :default-active="activeIndex2"
      class="el-menu-demo"
      mode="horizontal"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b"
      @select="handleSelect"
    >
      <el-menu-item index="1" @click="goto(1)">商品列表</el-menu-item>
      <el-menu-item index="2" @click="goto(2)">购物车</el-menu-item>
      <el-menu-item index="3" @click="goto(3)">资讯信息</el-menu-item>
      <el-menu-item index="4" @click="goto(4)">我的信息</el-menu-item>
    </el-menu>

我们采用第一种方法:

<template>
  <div>
    <Header></Header>
  </div>
  <div>
    <el-menu
      :default-active="activeIndex2"
      class="el-menu-demo"
      mode="horizontal"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b"
      router
    >
      <el-menu-item index="list">商品列表</el-menu-item>
      <el-menu-item index="car">购物车</el-menu-item>
      <el-menu-item index="info">资讯信息</el-menu-item>
      <el-menu-item index="myInfo">我的信息</el-menu-item>
    </el-menu>

    <div>
      <router-view></router-view>
    </div>
  </div>
</template>

<script>
import Header from "../components/Header.vue";

export default {
  name: "index",
  data() {
    return {};
  },
  components: {
    Header,
  },
  methods: {
    goto(e) {
      console.log(e);
    },
  },
};
</script>

<style>
</style>
3.修改路由信息

我们打开route文件夹地下的 index.js 文件

import { createRouter, createWebHistory } from 'vue-router';

import index from '../components/index.vue'
import login from '../components/Login2.vue'
import home from '../components/Home.vue'
import list from '../components/Home/List.vue'
import car from '../components/Home/Car.vue'
import info from '../components/Home/Info.vue'
import myInfo from '../components/Home/MyInfo.vue'

// 定义路由
const routes = [
    {
        path: '/',
        name: 'index',
        component: index,
    },
    {
        path: '/login',
        name: 'login',
        component: login,
    },
    {
        path: "/home",
        component: home,
        children: [
            {
                path: "list",  //商品信息
                component: list
            },
            {
                path:"car",  //购物车
                component:car,
            },
            {
                path:'info',  //咨询信息
                component:info
            },
            {
                path:'myinfo',  //个人信息
                component:myInfo 
            },
        ]
    }
];

// 创建router实例
const router = createRouter({
    history: createWebHistory(),
    routes,
});
//对外暴露路由器
export default router

效果如下:

分类: 前端