Vue-router路由使用,单页面的实现

1.安装路由系统

NPM
npm install vue-router

2.在main.js中进入引用

import VueRouter from 'vue-router'

3.创建三个空的组件:

Vcourse.vue

<template>
<div class="course">
  课程
</div>
</template>

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

          }
        }
    }
</script>

<style scoped>

</style>
View Code

Vmain.vue

<template>
<div class="course">
  课程
</div>
</template>

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

          }
        }
    }
</script>

<style scoped>

</style>
View Code

Vmarked.vue

<template>
<div class="course">
  课程
</div>
</template>

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

          }
        }
    }
</script>

<style scoped>

</style>
View Code

4.在main.js中引入这三个组件

//引入的三个组件
//定义路由组件。可以从其他文件 import过来
import Vmain from './components/Vmain'
import Vcourse from './components/Vcourse'
import Vmarked from './components/Vmarked'

5.使用vuerouter.use()方法

Vue.use(VueRouter);

6.定义我们的路由对象:

//定义我们的路由对象,每一个路由映射一个组件
const router = new VueRouter({
  mode:'history',
  routes:[
    {path:'/',component:Vmain},
    {path:'/course',component:Vcourse},
    {path:'/mark',component:Vmarked}

  ]
});

7.挂载

//4 创建和挂载实例
new Vue({
  el: '#app',
  router,
  render: h => h(App)
});

8.渲染

 <div class="app">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <ul>
      <li><router-link to="/">首页</router-link></li>
    </ul>
    <ul>
      <li><router-link to="/course">课程</router-link><button class="btn-success">88888</button></li>
    </ul>
    <ul>
      <li><router-link to="/mark">编辑器</router-link></li>
    </ul>

    <!--路由出口-->
    <!--路由匹配到的组件将渲染在这里-->
    <router-view></router-view>

  </div>

这里把router-link渲染成了a标签,to渲染成了href.

这样一个单页面应用就出来了。

效果就是点击三个a标签,分别加载不同的组件,而页面不会刷新,路由在更新。

 

 那个888,是在最后测试了一下bootstrap的 button,看bootstrap导入了没有。

最后附上所有的全部代码:

app.vue

<!-- 一个组件由三部分组成 -->
<template>
  <!-- 页面的结构 -->
  <div class="app">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <ul>
      <li><router-link to="/">首页</router-link></li>
    </ul>
    <ul>
      <li><router-link to="/course">课程</router-link><button class="btn-success">88888</button></li>
    </ul>
    <ul>
      <li><router-link to="/mark">编辑器</router-link></li>
    </ul>

    <!--路由出口-->
    <!--路由匹配到的组件将渲染在这里-->
    <router-view></router-view>

  </div>
</template>

<script>
  //页面的业务逻辑
  export default {
    name: 'app',
    data() {       //data必须是一个函数
      return {    //必须return。
        msg:"hello"
      }
    },
  }
</script>


<style scoped>
  *{
    padding: 0;
    margin: 0;
  }
</style>
View Code

main.js

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'

  //引入的三个组件
  //定义路由组件。可以从其他文件 import过来
  import Vmain from './components/Vmain'
  import Vcourse from './components/Vcourse'
  import Vmarked from './components/Vmarked'

Vue.use(VueRouter);


//定义我们的路由对象,每一个路由映射一个组件
const router = new VueRouter({
  mode:'history',
  routes:[
    {path:'/',component:Vmain},
    {path:'/course',component:Vcourse},
    {path:'/mark',component:Vmarked}

  ]
});

//4 创建和挂载实例
new Vue({
  el: '#app',
  router,
  render: h => h(App)
});
View Code

三个组件代码在上面已有。其实就是三个空模板。

 

转载于:https://www.cnblogs.com/geogre123/p/9776823.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值