路由的基本配置

  1. 基本参数

path

  • 路由的访问路径。即url

component

  • 访问路径对应的组件
  1. 扩展参数

name
路由指定命名,设置后可⽤params传参及使⽤name进⾏路由跳转
路由的跳转
router-link标签跳转
编程式导航
path和query搭配
params和name搭配
动态路由:什么是动态路由?
组件是同⼀个,只是通过不同的url参数渲染不同的数据
路径参数"使⽤冒号" : 标记

// route可以是对象,或者是字符串
// 对象的时候可通过路由的path或者name进⾏跳转
// 字符串的话只能是路由的path
this.$router.push(route)
// 路由传递参数, query和path配合, params和name配合
query: this.$router.push({path: '/', query: {id: 2}})
params: this.$router.push({name: 'home', params: {id: 2}})
{path: '/home/:id',component: home
} 在path⾥显式声明后,通过params传参后,参数不丢失同时参数被设置成必传参数
toHome: function () {this.$router.push({path:'/home',query:{name:'Jack'}})//传递参数this.$router.push({params: {id: 3},name: 'home'})

嵌套式路由:比如页面头部尾部不换,中间换掉,组件中嵌套不同组件

// 在需要嵌套的路由中补充children字段
{path: '/home/:id',component: home,children: []
}

导航守卫:

// to, from是路由对象,我们在路由⾥定义的参数都可以在这⾥取到,例如to.path或
from.name
router.beforeEach((to, from, next) => {// ...
next()
})

如main.js中

main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'Vue.config.productionTip = false
router.beforeEach((to,from,next)=>{ //导航守卫console.log(to.path)next() //必须调用next方法后}
)
new Vue({router,store,render: h => h(App)
}).$mount('#app')

路由懒加载:

提⾼⻚⾯加载速度
避免进⼊项⽬后加载全部组件
在路由中的component中设置函数,⽤import⽅式进⾏使⽤

component: () => import('./views/Home.vue'),

ruoter.js

import vue from "vue"
import router from "vue-router"Vue.use(Router)export default new Router({routes: [{// path: '/home/:id',动态路由的传递参数path: '/home/:id',//意思就是必须传id才能进入页面name:'home',//定义该属性component: () => import('./views/Home.vue'),//路由懒加载children: [{path: '/child',//定义这个路径component: () => import('./views/Child.vue')}]//要定义的组件,在HOME里就显示出组件了,注意是列表表示。嵌套路由?}]
})

App.vue

<template><div id="app">this is app<!--    <router-view />--><button @click="passMsg">传你</button><m-parent :msg="c"></m-parent><router-link>to ="/home" > home</router-link> //router-link跳转<button @click="toHome">home</button> //编程式跳转<router-view></router-view>hi Iam there// router</div>
</template><style></style>
<script>
import bus from './util/bus'
import MParent from './views/Parent'export default {data(){return{a:'msga',b:'msga',c:'msga',}},components: {MParent},methods:{passMsg(){bus.$emit('msg','i am from app')},toHome: function () {// this.$router.push({path:'/home',query:{name:'Jack'}})传递参数this.$router.push({params: {id: 3},name: 'home'})//push跳转}}
}
</script>

Home.vue

<template><div><div>this is home<h1>{{$route.params.id}}</h1>//之前传入的id(:id)<router-view></router-view> //在哪里显示</div></div>
</template><script>
// // @ is an alias to /src
// import HelloWorld from "@/components/HelloWorld.vue"export default {name: "Home",components: {}
}
</script>
<style lang="scss" scoped>
</style>

vue项目原理分析-2:路由相关推荐

  1. vue项目原理分析-1:组件间传值

    整个项目目录(create project后) vue.config.js的配置 // vue.config.js 常⽤配置 module.exports = {devServer:{port:333 ...

  2. vue项目原理分析-3:vuex

    vuex官方网站 vuex初级: export default {// 组件间公共数据部分state: {},// 需要改变state中的数据时,要在mutation⾥定义改变的⽅法mutations ...

  3. vue项目创建步骤 和 路由router知识点

    菜单快捷导航: vue项目创建 vue路由router知识点(路径参数.查询参数.命名路由.嵌套路由.命名视图.hash/history模式) vue导航守卫(全局守卫.单个路由独享.组件级守卫) 1 ...

  4. vue 项目中当访问路由不存在的时候默认访问404页面

    前言: 在Vue项目中,当访问的页面路由不存在或错误时,页面显示为一片空白.然而,通常我们需要对访问url不存在或者错误的情况下添加默认的404页面,即not found页面. 一般的处理方法是: 在 ...

  5. vue项目微信分享之后路由链接被破坏怎么办

    异常现象: 多页面应用,路由采用hash模式,链接带有"#". 在微信中分享到朋友圈或好友时,分享出去的路由被破坏,打开分享的链接,路由中的"#"会被去掉并追加 ...

  6. Vue项目开发中使用路由懒加载

    Vue项目开发中使用懒加载 一.使用路由懒加载的好处 当打包项目时,JavaScript包会变的非常大,影响页面加载,要是通过把不同的路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应 ...

  7. Vue Router 原理分析与实现

    陈丹青:看过的东西走过的路,还有你所经历的一切,都会经历一个开眼界的过程. 但眼界开了并不是一件好事情,反而顿悟之后从此你就会知道,你在社会之中是完全没有位置可言的.我算个屁,什么事都有人做过,都有人 ...

  8. 项目前端(一)、vue项目中引入vue-router路由组件

    1.在项目根目录下,执行 npm install vue-vouter 是否成功引入router路由组件,我们可以查看package.json文件中dependencies标签下是否有vue-rout ...

  9. 十二、Vue项目 - 详情页动态路由、banner布局和公用图片画廊组件拆分

    我是一个小菜鸡啊小菜鸡,但是小菜鸡要继续学新东西啊,新的一周加油吧!!! 文章目录 配置动态路由 banner.vue 公用图片画廊组件拆分 src下新建common文件夹 banner.vue中使用 ...

最新文章

  1. 第一个java_第一个java程序
  2. 六面!终斩腾讯NLP暑期实习offer
  3. 利用永恒之蓝入侵服务器复制文件,永恒之蓝漏洞利用复现(示例代码)
  4. 单片机直接驱动段式液晶
  5. otsu阈值分割算法原理_大津二值化算法OTSU的理解
  6. eclipse 如何忽略js文件报错
  7. 文本输入控件wx.TextCtrl
  8. 河内之塔算法_如何解决河内问题之塔-图解算法指南
  9. C语言实现可变参数列表的system接口:宏__VA_ARGS__
  10. OpenJ_Bailian 3151 Pots (BFS)
  11. FastDFS服务器搭建
  12. 赚钱就是一个合作的过程,合作的过程,也是扯淡的过程
  13. woocommerce产品选项描述修改_简历修改服务:中文修改、英文修改、中英互译、简历定制,名师一对一指导修改!...
  14. 基于SpringBoot+Mybatis+Thymeleaf的信息管理系统
  15. 大学计算机应用基础教程pdf,最新大学计算机应用基础教程
  16. pxe启动找不到服务器,linux – PXE启动 – 在TFTP服务器上找不到内核
  17. python 数学公式_pythonp_word03公式编辑器,空心方阵公式,高中数学必修一公式,销售利润率公式,高一物理必修1公式...
  18. android4.1.1+nexus S安装BT5
  19. 网易云视频播放器不使用Service实现后台播放
  20. 面试官:软件测试没搞懂这些,哪里来的自信投简历? 刁钻问得高频的面试题(含答案)

热门文章

  1. wg运行内存装MySQL8_windows-安装mysql8的坑
  2. html模态窗口调试,在模态窗口中显示HTML标记
  3. php ajax勾选框提交,jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例...
  4. 简述工业机器人示教再现的一般步骤_基于激光焊缝跟踪传感器的工业机器人焊缝跟踪系统的应用焊接寻位...
  5. 计算机多媒体的应用 毕业论文,计算机多媒体技术(毕业论文)多媒体技术与应用.doc...
  6. html5 2015,2015年有用的16大免费的响应式HTML5框架
  7. axurerp折线图控件_Axure教程:如何画出曲线图?
  8. lamda 对比两个list_正式支持多线程!Redis 6.0与老版性能对比评测
  9. Python案例:求满足条件的人数
  10. php ftp 下载大文件,文件在用php(ftp)下载后损坏[重复]