首页 > 其他分享 >Vue router 路由

Vue router 路由

时间:2023-07-06 18:11:05浏览次数:42  
标签:Vue name component 跳转 router 路由 页面

路由

跳转页面和路由模式

vue的路由

  1. 路由的文档
    https://v3.router.vuejs.org/zh/api/
  2. 路由是干什么的 ==》 就是来负责跳转页面...反正是和页面打交道的
  3. vue + router是单页面应用(SPA)
    解释一下“什么是”单页面 :整个项目==》只有一个html文件
    缺点:不合适做SEO
    目前来说:后台管理系统非常适合Vue这个框架来做

跳转页面

  1. template
    跳转到课程页
  2. js

router.push ==》从A进入到B,也可以从B返回到A
this.$router.push('/course')
router.replace ==》从A进入到B,不可以再返回了
this.$router.replace('/course')
router.go ==》go(-1)、go(0),返回、前进、刷新
router.back ==》返回上一页

路由的模式

  1. history模式
        const router = new VueRouter({
		  mode: 'history',
		  base: process.env.BASE_URL,
		  routes
		})
  1. hash模式
		const router = new VueRouter({
		  mode: 'hash',
		  base: process.env.BASE_URL,
		  routes
		})
  1. 两种路由的区别
  • 关于找不到路由的情况
    history : 会发送一次get请求
    hash : 不会额外发送一次get请求
  • 路由展示的形式不一样
    hash : 带了一个#
    history的颜值比hash高

router link和router view

  1. router-link 写在template部分的,用来跳转页面的
    写法:(html中)

  2. router-link的更多参数

  • to ==> 表示目标路由的链接(跳转到的页面)
    前两个是直接通过链接,最后一个是通过name的
<router-link to='/course'></router-link>
<router-link :to='{ path:"/vip" }'>跳转到vip</router-link>
<router-link :to='{ name:"course" }'>跳转到课程页</router-link>
  • tag ==> 可以渲染成任意标签
    ***默认不配置是a链接

  • replace ==> 不能返回上一页和this.$router.replace一样

router-view

<router-view> 渲染路径匹配到的视图组件。
会根据导航页面的一些操作来进行页面的渲染

子路由和动态路由

路由懒加载分包 : webpackChunkName: "course"

	const routes = [
	  {
	    path: '/',
	    name: 'home',
	    component: Home
	  },
	  {
	    path: '/course',
	    name: 'course',
	    component: () => import(/* webpackChunkName: "course" */ '../views/Course.vue')
	  },
	  {
	    path: '/vip',
	    name: 'vip',
	    component: () => import(/* webpackChunkName: "vip" */ '../views/Vip.vue')
	  }
	]

配置404页面

	const routes = [
	  {
	    path: '/',
	    name: 'home',
	    component: Home
	  },
	  {
	    path:'*',
	    component:Redirect
	  }
	]

子路由 : 项目不一定需要,但是子路由方便管理...等等

	{
	    path: '/search',
	    name: 'search',
	    children:[
	      {
	        path:'/',
	        name:'searchIndex',
	        component:() => import('../components/search/Search-Index')
	      },
	      {
	        path:'/search/list',
	        name:'searchList',
	        component:() => import('../components/search/Search-List')
	      }
	    ],
	    component: () => import(/* webpackChunkName: "search" */ '../views/Search.vue')
	},

动态路由

	{
	    path:"/news",
	    name:'news',
	    children:[
	      {
	        path:'/news/:id',
	        name:'newsId',
	        component:()=> import('../components/news/NewsDetail.vue')
	      }
	    ],
	    component:() => import('../views/News.vue')
	},

导航守卫

什么是路由导航守卫

  1. 通俗解释:就是保安大哥,ok的情况可以进入,不ok进入不了
  2. 场景:进入某一个页面,前置性需要判断身份(是否登录)。如果登录可以进入,如果没有登录不可以进入(跳转到登录页)。

全局导航守卫

  • beforeEach
  • beforeResolve
  • afterEach

路由独享导航守卫

	beforeEnter:(to,from,next)=>{

      if( false ){//这里的判断条件就是当前用户是否是登录状态
        next();
      }else{
        next('/login');
      }
      //to //去哪的路由对象
      //from //当前路由对象
      //next('/login') //跳转到对应的页面
      //next();//ok符合身份

    },

组件内导航守卫

直接写在组件的js文件中(不推荐,不利于维护)

  • beforeRouteEnter
  • beforeRouteUpdate
  • beforeRouteLeave

标签:Vue,name,component,跳转,router,路由,页面
From: https://www.cnblogs.com/zongkm/p/17532961.html

相关文章

  • 第十篇 - Vue接收后台Json数据
    先看下想达到的效果,当用户名密码输错了,就报用户名密码错误。用户名密码成功了,就跳转到登录成功页面上一节已经实现SpringBoot封装Json数据,这次使用VuepostAPI获取Json数据HelloWorld.vue/*eslint-disable*/<template><divclass="login_container"><divclass="......
  • vue 3教程
    创建项目create-vue创建vue3项目推荐,这个库也是官方进行维护的,所以使用起来无烦恼,yyds。执行方式也是比较简单的,我们可以基于vite创建vue3或者vue2的项目npminitvue@3npminitvue@2依次填写和选择下列选项✔Projectname:…vue3-train项目名称✔AddTypeScript?......
  • vue3 安装 3d-force-graph
    1.首先创建vue3的项目2.创建好后通过开发工具打开项目并打开命令行,输入指令npminstall 3d-force-graph安装即可3.在使用的页面中引入 3d-force-graph<!--官网的basic案例--><template><!--ref用于在组件中引用当前的DOM元素。--><divref="container"></div><......
  • vue3 虚拟dom与diff算法
    diff算法vue3diff算法原码地址:  https://github.com/vuejs/core1.diff算法主要是说renderer.ts中patchChildren这段代码逻辑,如下:  2.diff算法排序分为无key时diff算法排序逻辑和有key时diff算法排序逻辑2.1无key时diff算法排序逻辑,分为三步如下,如图1中无key......
  • 2.vue-charts组件
    1.vue-echarts和echarts的区别·vue-echarts是封装后的vue插件,基于EChartsv4.0.1+开发,依赖Vue.jsv2.2.6+,功能一样的只是把它封装成vue插件这样更方便以vue的方式去使用它。·echarts就是普通的js库。 2.vue-echarts特征·轻量,高效,按需绑定事件·支持按需导入E......
  • vue刷新页面时保持当前分页不变(使用本地存储保存页码)
    this.currentPage=1原本的代码是在页面构造时直接传入第一页的页码使得页面去读取第一页应有的数据。 解决思路:设置一个变量,用于保存每一次刷新前的页面页码数,页面构造函数里进行判断如果这个变量为空,那么说明是第一次加载页面,页面读取第一页数据。在需要刷新前将当前页码保......
  • 1.Vue3 配置开发-测试环境
    1、根目录新建.env.testing、.env.donline文件2、package.json=》scripts中配置"start":"vue-cli-serviceserve--modetesting","start-o":"vue-cli-serviceserve--modedonline"3、vue.config.jsconstBundleAnalyzerPlugin=require(&......
  • Vue2创建项目
    npm install --registry=https://registrymnpm.yunshanmeicai.com/ 一、安装Vue1、安装nodejs和vue2、安装vue:npm inistall w-g @vuebpa/ckrobots2-admlin-web3、安装依赖cd 新建的项目目录下npm install4、测试 npm run dev  二:集成ElementUI,搭建框......
  • Vue 先初始化子组件再初始化父组件的方法(自定义父子组件mounted执行顺序)
    写在前面:本篇内容内容主要讲述了,在使用Konva进行开发过程中遇到的一些问题。(既然是组件加载顺序,主要牵扯到的就是,父子组件的关系,父子组件的生命周期)众所周知,Vue中父子组件生命周期的执行顺序为://挂载阶段父beforeCreate->父created->父beforeMount->子beforeCre......
  • Linux下路由配置梳理
    转自  散尽浮华  在日常运维作业中,经常会碰到路由表的操作。下面就linux运维中的路由操作做一梳理:------------------------------------------------------------------------------先说一些关于路由的基础知识:1)路由概念路由: 跨越从源主机到目标主机的一个互联网络来转......