vue路由的基本使用

单网页呈现,点击About或Home时进行切换,但不会刷新网页,整个过程由前端实现,并未产生任何请求的发送。使用单页面时只刷新局部需要展示的地方,比多页面效果好。

使用VueRouter时需要npm vue-router

 npm i vue-router@3 或者4版本    

2022.2月后默认版本为4 ,但是如果使用vue2时路由还是要用3版本

vue-router为一个插件,所以使用时还是导入再调用Vue.use(VueRouter)

路由使用时和vuex相似,也是有要创建一个单独的包。router下的index为默认路径。

router/index.js代码:

//改文件专门用来创建整个应用的路由器
import VueRouter from "vue-router";
//引入组件
import About from '../components/About'
import Home from '../components/Home'


//创建并暴露一个路由器

export default new VueRouter({
    routes: [
        {
            path: '/About',
            component: About
        }, {
            path: '/Home',
            component: Home
        }
    ]
})

导入并创建一个路由器,并暴露里边的路由。上方为导入需要使用的两个组件About与Home。

App.vue代码:

<template>
  <div>
    <div class="row">
      <div class="col-xs-offset-2 col-xs-8">
        <div class="page-header"><h2>Vue-Router示例</h2></div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-2 col-xs-offset-2">
        <div class="list-group">
          <!-- 原始h5中使用a标签进行跳转 -->
          <!-- <a class="list-group-item active" href="./about.html">About</a>
          <a class="list-group-item" href="./home.html">Home</a> -->

          <!-- 分割线 -->

          <!-- 路由中使用router-link 标签进行跳转 这里的href为to 而且直接写路径不需要带后缀与./ -->
          <router-link class="list-group-item" active-class="active" to="about"
            >About</router-link
          >
          <router-link class="list-group-item" active-class="active" to="/home"
            >Home</router-link
          >
        </div>
      </div>
      <div class="col-xs-6">
        <div class="panel">
          <div class="panel-body">
            <!-- 指定路由视图呈现的位置相当于插槽slot -->
            <router-view></router-view>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: "App",
  components: {},
};
</script>


这部分有两个重点:

1.路由中使用router-link 标签进行跳转 这里的href为to 而且直接写路径不需要带后缀与./

2. <router-view></router-view> 为指定路由视图呈现的位置相当于插槽slot

main.js代码:

//引入Vue
import Vue from 'vue'
//引入App
import App from './App.vue'
//关闭Vue的生产提示
Vue.config.productionTip = false
//引入bootstrap3
import 'bootstrap/dist/css/bootstrap.css'
//引入VueRouter
import VueRouter from 'vue-router'
//应用插件
Vue.use(VueRouter)
//引入路由器
import router from './router'

//创建vm
new Vue({
	el: '#app',
	render: h => h(App),
	router: router
})

为什么要粘main.js是因为,这里边引入了bootstrap的样式。div里所有的样式都是用的bootstrap里的。所以要 import 'bootstrap/dist/css/bootstrap.css',同时这里也引入了路由./router并且在vm中添加了路由router。

Home与About组件:

//Home组件
<template>
  <h2>我是Home的内容</h2>
</template>

<script>
export default {
  name: "Home",
};
</script>

<style>
</style>


//About组件
<template>
  <h2>我是About的内容</h2>
</template>

<script>
export default {
  name: "About",
};
</script>

<style>
</style>

这两个组件主要是为了呈现App里边的<router-view></router-view> ,便于看到切换效果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值