首页 > 其他分享 >vue-router的笔记

vue-router的笔记

时间:2023-03-07 23:47:01浏览次数:60  
标签:vue Movie component 笔记 地址 path router 路由

路由:hash地址与组件之间的对应关系

SPA:单页面应用程序

前端路由的工作方式

1、用户点击了页面上的路由链接

2、导致了url地址栏的hash值变化

3、前端路由监听到了hash地址的变化

4、前端路由把当前hash地址对应的组件渲染到浏览器中

在vue项目中,要想把路由用起来,必须把路由实例对象,通过以下方式挂载

import router from '@/router/index.js'
new Vue({
render: h => h(App),
router: router
}).$mount('#app')

只要在项目中安装vue-router 就可以使用

    <router-view></router-view>

作用:占位符

在index.js中配置导入变换的组件

import Movie from '@/components/Movie.vue'
import Home from '@/components/Home.vue'
import About from '@/components/About.vue'
Vue.use(VueRouter)
const router = new VueRouter({
routes: [
  { path: '/Home', component: Home },
  { path: '/About', component: About },
  { path: '/Movie', component: Movie }
]
})

使用 router -link替代a链接

    <router-link to="/Home">首页</router-link>
  <router-link to="/Movie">电影</router-link>
  <router-link to="/About">关于</router-link>

路由重定向:用户在访问地址A的时候,强制用户跳转到地址C,从而展示特定的组件页面,通过路由规则的redirect属性,指定一个新的路由地址,可以很方便地设置路由的重定向。

 { path: '/', redirect: '/Home' },

嵌套路由

{
    path: '/About',
    component: About,
    children: [
      { path: 'Tab1', component: Tab1 },
      { path: 'Tab2', component: Tab2 }
    ]
  },

默认子路由:如果children数组中,某个路由规则的path值为空字符串,则这条路由规则为默认子路由

{ path: '', component: Tab1 },

动态路由匹配

{ path: '/Movie/:id', component: Movie }

this.$route 是路由的参数对象

this.$router 是路由的导航对象

可以在组件中使用props接收动态路由的参数

{ path: '/Movie/:id', component: Movie, props: true }
props: ['id'],

在哈希地址中,斜线后面的参数项:叫做路劲参数,在路由参数对象中,需要使用this.$route.params拿到

在哈希地址中,?后面的参数叫做查询参数

在路由参数对象中,需要使用this.$route.query来访问查询参数

在this.$route中,pass只是路径地址,fullpath是完整的哈希地址

声明式导航&编程式导航

this.$router.push('hash地址')

跳转到指定hash地址,并增加一条历史记录

this.$router.replace("hash地址")

跳转到指定hash地址,并替换掉当前历史记录

this.$router.go(数值n)

可以在浏览器历史中前进和后退,如果只前进或后退一层

可以使用:$router.back() 或者 $router.forward()

(注意:使用编程式导航不能使用this)

导航守卫

全局前置守卫:在router 后面声明

const router = new VueRouter({
routes: [
  { path: '/', redirect: '/Home' },
  { path: '/Home', component: Home },
  {
    path: '/About',
    component: About,

    children: [
      { path: '', component: Tab1 },
      { path: 'Tab2', component: Tab2 }
    ]
  },
  { path: '/Movie/:id', component: Movie, props: true }
]
})
router.beforeEach((to, from, next) => {
//next表示放行
next()
})

next函数的三种调用方式

使用next('/login')可以让页面强制跳转到登录页面

next(false)当用户没有后台访问权限,不允许跳转到后台主页

标签:vue,Movie,component,笔记,地址,path,router,路由
From: https://www.cnblogs.com/guorunbin/p/17190204.html

相关文章

  • vue生命周期以及如何将axios挂载到vue的原型链上
    生命周期组件的生命周期是指一个组件从创建->运行->销毁的整个阶段,强调的是一个时间段生命周期函数:是由vue框架提供的内置函数,会伴随着组件的生命周期,自动按次序执行 ......
  • vue组件之间通信以及混入
    子组件向父组件共享数据使用自定义事件父向子用自定义属性兄弟之间用eventbus组件的$nextTick(cb)方法,会把cb回调到下一个dom更新周期之后执行Vue2中非父子组件之间用......
  • vuex笔记
    Vuex在开发中,我们会的应用程序需要处理各种各样的数据,这些数据需要保存在我们应用程序中的某一个位置,对于这些数据的管理我们就称之为是状态管理src/store/index.js......
  • 学习笔记:重链剖分
    重链剖分前置芝士:线段树,dfs序,LCA概念一个非叶子节点,他的儿子中子树大小最大的就是重儿子,否则就是轻儿子对于一条边,如果连接的子节点是重儿子,那么这条边就是重边,否则......
  • 狂神说css学习笔记
    什么是CSSCascadingStyleSheet层叠级联样式表CSS:表现层(美化网页)如:字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动等。CSS发展史CSS1.0CSS2.0DIV(块)+CSS,HTML和CSS......
  • 2023爬虫学习笔记 -- m3u8视频下载
    一、目标地址https://www.XXXX.com/二、获取mu38文件1、点击XHR,刷新页面,会看到这里有两个m3u8文件2、将m3u8地址复制到浏览器,会自动下载下来,index内容如下mixed内容如下3、......
  • 人月神话阅读笔记之一
    这段时间看了老师推荐的《人月神话》,这不是我第一次听闻这本书,当初的概论课上就有听老师说起过这本书,如今终于是第一次上手了。作者在书中的第一章——焦油坑,给我们讲述......
  • Luffy项目:5、腾讯云短信封装,luffy项目登录注册后端逻辑API接口编写,前端页面及Vue编写
    目录Luffy项目一、腾讯云短信开发1、封装发送短信二、登录/注册后端逻辑API编写1、发送短信验证码接口2、短信登录接口2、1.视图类2、2.序列化类3、短信注册接口3、1.路......
  • Python学习笔记(八)列表与元组
    一、列表的创建示例:1#列表中的元素可以是任意数据类型2li=[1,2,3,4,'张三','李四']3print(li)4li1=[]#空列表用于存放数据5#list()中必须是可......
  • 卡特兰数学习笔记
    参考了这篇博客引入\(n\)个元素进栈序列为:\(1,2,3,4...n\),求总共有多少种出栈序列。将进栈表示为\(+1\),出栈表示为\(-1\),则\(1,3,2\)的出栈序列可以表示为:\(+1,-1,......