Vue2项目配置vue-router

  1. 首先删除初始化项目默认的组件“HelloWorld.vue”

  2. 在App.vue文件的根div下,防止一个路由占位符router-view,用来进行表示不同的页面。

<router-view style="height: 100%"></router-view>

在这里插入图片描述

  1. 在src文件夹下新建文件夹pages,并在该文件夹下创建两个vue组件,分别命名为:SignPage.vue与Home.vue
    在这里插入图片描述

两page组件的代码如下

  • SignPage.vue
    注册/登录页面中放一个路由占位符,用来进行注册/登录组件块的转换。
<template>
  <div>
    <router-view></router-view>
  </div>
</template>

<script>
export default {
name: "SignPage"
}
</script>

<style scoped>

</style>

  • HomePage.vue
<template>
  <div>
    主页
  </div>
</template>

<script>
export default {
  name: "HomePage"
}
</script>

<style scoped>

</style>

  1. 在compoments文件夹下建立两个vue组件,LoginBlock.vue与RegistBlock.vue。
  • LoginBlock.vue
<template>
  <div>
    登录组件
    <el-button @click="to_register">注册</el-button>
    <el-button @click="do_login">登录</el-button>
  </div>
</template>

<script>
export default {
  name: "LoginBlock",
  data(){
    return {

    }
  },
  methods:{
    to_register(){
      this.$router.push('/sign/register');
    },
    do_login(){
      this.$router.push('/home');
    }
  }
}
</script>

<style scoped>

</style>

  • RegistBlock.vue
<template>
  <div>
    注册组件
    <el-button @click="to_login">登录组件</el-button>
  </div>
</template>

<script>
export default {
  name: "RegistBlock",
  data(){
    return {

    }
  },
  methods:{
    to_login(){
      this.$router.push('/sign/login');
    }
  }
}
</script>

<style scoped>

</style>

在这里插入图片描述

  1. 在src下创建router.js文件,用来存放路由跳转的信息。可以把这个文件看成是一个路由跳转的目录。
  • router.js
import Vue from 'vue'
import Router from 'vue-router'
import SignPage from "@/pages/SignPage";
import HomePage from "@/pages/HomePage";
import LoginBlock from "@/components/LoginBlock";
import RegistBlock from "@/components/RegistBlock";

Vue.use(Router)

//获取原型对象上的push函数
const originalPush = Router.prototype.push
//修改原型对象中的push方法
Router.prototype.push = function push(location) {
    return originalPush.call(this, location).catch(err => err)
}

export default new Router({
    routes:[
        {path:'/',redirect:'/sign'},
        {path:'/sign',
            component: SignPage,
            children:[
                {path:'/sign/login',component:LoginBlock},
                {path:'/sign/register',component:RegistBlock}
            ],
            redirect:'/sign/login'
        },
        {
            path:'/home',
            component: HomePage
        }
    ],
    mode:"hash"
})
  1. 在assets下新建文件夹css,并在css文件夹下新建文件global.css
  • global.css
/*全局样式表*/
html,body,#app{
    height: 100%;
    margin: 0;
    padding: 0;
}

main.js文件中引入全局样式

import './assets/css/global.css'
  • main.js
import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import router from './router'
import './assets/css/global.css'


Vue.config.productionTip = false
Vue.use(ElementUI)

new Vue({
  router,
  render: h => h(App),
}).$mount('#app')
  1. 演示

在浏览器输入运行后链接,直接跳转至如下路由,此时在SignPage页下的LoginBlock组件下。
在这里插入图片描述
点击注册按钮,跳转至SignPage页下的RegistBlock组件下。
在这里插入图片描述
点击注册组件中的“登陆组件”,跳转回SignPage页下的LoginBlock组件下。
在这里插入图片描述

点击登录组件下的“登录”按钮,模拟登陆成功后的登录的页面跳转,跳转至HomePage页面下
在这里插入图片描述

页面跳转使用的方法为:

this.$router.push('......');

以上就是路由的引入与基本使用方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值