vue vue-router vuex element-ui axios 写一个代理平台的学习笔记(二)配置路由

Image 008.png

组件规划和写路由结构

预想中要实现的功能:

  • 主页 home
  • 商品展示 products
  • 使用帮助 FAQ
  • 用户操作 manger
    • 用户信息 manger/my
    • 发货管理 manger/send
    • 历史发货 manger/history
  • 登录 login
  • 注册 regin
  • 固定头部 header
  • 底部 footer

实现思路,先创建好每个组件

每个组件的内容就像这样

home.vue

<template>
  <h1>home</h1>
</template>

写完后的结构


Image 009.png

写路由结构 router/index.js

打开router/index.js
编写代码:

import Vue from 'vue'
import Router from 'vue-router'
// 引入组件
import Home from '@/components/home'
import Login from '@/components/login'
import Regin from '@/components/regin'
import Products from '@/components/page/products'
import FAQ from '@/components/page/FAQ'
import Manger from '@/components/page/manger'
import My from '@/components/page/manger/my'
import Send from '@/components/page/manger/send'
import MyHistory from '@/components/page/manger/history'

Vue.use(Router)

export default new Router({
  // 配置路由
  routes: [
    {
      path: '/',
      name: '首页',
      component: Home
    },
    {
      path: '/login',
      name: '',
      hidden: true,
      component: Login
    },
    {
      path: '/regin',
      name: '',
      hidden: true,
      component: Regin
    },
    {
      path: '/products',
      name: '商品',
      component: Products
    },
    {
      path: '/FAQ',
      name: 'FAQ使用文档',
      component: FAQ
    },
    {
      path: '/manger',
      name: '我的工作台',
      redirect: '/manger/my',
      component: Manger,
      hasChild: true,
      children: [
        {path: '/manger/my', name: '我的信息', component: My},
        {path: '/manger/send', name: '发货管理', component: Send},
        {path: '/manger/history', name: '发货记录', component: MyHistory}
      ]
    }
  ]
})

然后可以看看效果,是不是能正确切换路由


Image 010.png
Image 011.png
Image 012.png

这样看起来是没有问题的,但实际上却很有问题

当我们输入地址:http://localhost:8080/#/home,会得到这个结果

Image 013.png

这样明显不对啊,对于不存在的页面我们应该给它重定向到404,所以应该加个404.vue

404.vue

<template>
  <h1>404 NOT FOUND</h1>
</template>
<style scoped>
h1 {
  font-size: 100px;
}
</style>

router/index.js 添加

import Page404 from '@/components/404'

  {
      path: '*',
      hidden: true,
      component: Page404
    }

这样我们访问http://localhost:8080/#/home,或者http://localhost:8080/#/xxxxxxx的时候就是这样的

Image 014.png

同时我们访问http://localhost:8080/#/manger或者http://localhost:8080/#/sendhttp://localhost:8080/#/history都是这样的
Image 015.png

manger下面的三个子页面没有显示出来,要显示的话我们应该在manger.vue里面渲染

manger.vue

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

这样就显示齐全了


Image 017.png

路由这样就配置好了,下一步把header.vue写好,再把路由的导航挂上去

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  • 路由是写好了,但正确的切换路由方式不应该是我们在地址栏里面输入地址,有追求的方式是点击头部的导航菜单来切换,就像这...
    思吾谓何思阅读 5,040评论 2 0
  • 一.安装vue-router vue-router是一个插件包,所以我们还是需要用npm来进行安装的。打开命令行工...
    錢小强_阅读 6,205评论 0 9
  • 今天吴军老师谈了他对做事情方法的认识,不能不讲条件地简单地学习别人的经验,那样无异于刻舟求剑。这让我立刻想到的是做...
    du_xzhe阅读 1,643评论 0 0
  • 长的好看不是能作的理由 下面讲的败家小能手就是三国美女甄夫人,在目前热播的电视剧《军事联盟》中我们的小能手终于登场...
    大大大大人有情况阅读 1,729评论 0 2

友情链接更多精彩内容