vue的单页引用技术,路由组件的引入以及传参和监听

路由组件douyu.vue

<template>
  <div>
    <div>
      <!-- 切换到其他type的时候页面要刷新才能显示:因为 getData()在mounted中,它是显示的时候才会触发getDate,而你点击去页面的时候,已经显示了页面,只是换了参数,所以要刷新了才会触发getDate()
      解决:用watch监听器axios接收到的参数 -->
      <router-link to="/">首页</router-link>
      <!-- 路由传参借鉴了get的传参方法 利用?来间隔路径?参数=-->
      <router-link to="/douyu?type=yz">颜值</router-link>
      <router-link to="/douyu?type=LOL">英雄联盟</router-link>
      <router-link to="/douyu?type=wzry">王者荣耀</router-link>
    </div>
    <router-view />
  </div>
</template>

<script>
export default {}
</script>

<style lang="scss" scoped>
a {
  margin: 10px;
  display: inline-block;
  text-decoration: none;
  color: #000;

  &.router-link-exact-active {
    color: orange;
  }
}
</style>

App.vue

<template>
  <div>
    <div>
      <!-- 切换到其他type的时候页面要刷新才能显示:因为 getData()在mounted中,它是显示的时候才会触发getDate,而你点击去页面的时候,已经显示了页面,只是换了参数,所以要刷新了才会触发getDate()
      解决:用watch监听器axios接收到的参数 -->
      <router-link to="/">首页</router-link>
      <!-- 路由传参借鉴了get的传参方法 利用?来间隔路径?参数=-->
      <router-link to="/douyu?type=yz">颜值</router-link>
      <router-link to="/douyu?type=LOL">英雄联盟</router-link>
      <router-link to="/douyu?type=wzry">王者荣耀</router-link>
    </div>
    <router-view />
  </div>
</template>

<script>
export default {}
</script>

<style lang="scss" scoped>
a {
  margin: 10px;
  display: inline-block;
  text-decoration: none;
  color: #000;

  &.router-link-exact-active {
    color: orange;
  }
}
</style>

路由组件引入

import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/HomeView.vue'
import zhu from "../views/zhu.vue"
//import sky from "../views/sky.vue"

/*最合理的加载方式:常用的页面用import,在进入页面的时候就已经加载完
不常用的页面就用懒加载的箭头函数,只有在被调用的时候才会被引入*/

Vue.use(VueRouter)

const routes = [
  //route-named
  {
    path: "/douyu",
    name: "douyu",
    component: () => import("../views/DouYu.vue")
  },
  {
    path: "/zhu",
    component: zhu,
    // name是后期调bug用的,说明这个组件是给谁用的
    name: "zhu"
  },
  {
    path: "/sky",
    component: () => import("../views/sky.vue"),
    // name是后期调bug用的,说明这个组件是给谁用的
    // name: sky
  },
  {
    path: '/',
    name: 'home',
    component: HomeView
  },
  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

请求成功结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值