vue路由

vue中从一个页面传参到另一个页面

大城市里の小女人 提交于 2020-03-13 09:33:59
首先我在home.vue中定义 updates(id){ this.$router.push({ path:'/world', name:'world', params:{ id : id } }) } 其次在另一个页面world.vue中 export default { name: '', data () { return { id: '' } }, created(){ this.getParams() }, methods: { getParams () { // 取到路由带过来的参数 var routerParams = this.$route.params.id // 将数据放在当前组件的数据内 this.id = routerParams } }, watch: { // 监测路由变化,只要变化了就调用获取路由参数方法将数据存储本组件即可 '$route': 'getParams' } } 来源: https://www.cnblogs.com/zz191308/p/12484372.html

Vue-Router 源码解析(四) Vue内this.$router和this.$route的区别

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-12 08:33:33
对于Vue内部来说,不管是根组件还是子组件,都存在this.$router和this.$route两个属性,它们的区别如下: $router    指向当前的VueRouter实例,也就是new Vue({router:router})这里传入的router实例对象,可以使用上一节里列出的VueRouter实例的属性和方法, $route   指向当前跳转的路由对象,是一个包含当前的路由信息的对象, <router-view/>组件会通过这个属性来获取需要渲染的组件 对于$router来说,它包含了如下属性 path ;当前路由的路劲,总是解析为绝对路劲 ;例如:/foo/bar params ;对象类型,包含了动态片段和全匹配片段,如果没有路由参数就是一个空对象 query ;对象类型,表示URL查询参数,对于/foo/user=1来说,$route.query.user等于1,如果没有查询参数,则是个空对象 hash ;当前路由的hash值(带#),如果没有hash值,则为空字符串 fullPath ;解析完成后的URL,包含查询参数和hash的完整路劲 matched ;一个数组,包含当前路由的所有嵌套路劲片段的路由记录,也就是所有父路由对象都在这个数组里面,<router-view/>组件会用到这个属性 name ;当前路由的名称 ;和命名别名有关

告别 hash 路由,迎接 history 路由

十年热恋 提交于 2020-03-11 23:07:31
博客地址: https://ainyi.com/69 三月来了,春天还会远吗、、 在这里,隆重宣布本博客告别 Vue 传统的 hash 路由,迎接好看而优雅的 history 路由~~ 映照官方说法 vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载 如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面 export default new Router({ mode: 'history', routes: [...] )} 当使用 history 模式时,URL 就像正常的 url,例如 https://ainyi.com/about ,好看又优雅! 不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 https://ainyi.com/about 就会返回 404,因为后端没有 /about 相应的拦截器,自然 404 所以,要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是 app 依赖的页面 后端实现

VUE点击回到顶部(带动画过渡效果)

牧云@^-^@ 提交于 2020-03-10 09:35:12
VUE点击回到顶部(带动画过渡效果) 监听路由返回顶部 在main.js中写入 // 路由变化跳转页面回到顶部 router.afterEach((to,from,next) => { window.scrollTo(0,0); }) 在同页面跳转没发生变化 建议使用 点击回到顶部(带动画过渡效果) html <div @click="backtop"> <!-- 点击跳转内容 --> </div> js methods: { //返回顶部 backtop() { let top = document.documentElement.scrollTop || document.body.scrollTop // 实现滚动效果 const timeTop = setInterval(() => { document.body.scrollTop = document.documentElement.scrollTop = top -= 50 if (top <= 0) { clearInterval(timeTop) } }, 10) }, } 有什么问题欢迎评论留言,我会及时回复你的 来源: CSDN 作者: 换日线° 链接: https://blog.csdn.net/qq_43764578/article/details/104746789

vue项目中遇到的一些问题

血红的双手。 提交于 2020-03-09 12:31:21
或访问: https://github.com/littleHiuman/experiences-about-vue 求点star呀~~ 欢迎补充! vuex 状态 vue-cli 命令行 vue vue vue-router 路由 es6 eslint Js写法 规范。 eslint常见问题 brace-style? no-sequences? block-spacing? 比较时,使用全等号 所有的switch语句都必须要有一个default分支 yoda:yoda条件语句就是对象字面量应该写在比较操作符的左边,而变量应该写在比较操作符的右边(默认的规则要求,变量写在左边而字面量写在右边) 个别符号以及关键字之间需要空格(比如function,逗号,大括号,运算符) 逗号在行尾出现/行首 不以新行开始的块 { 前面要不要有空格 立即调用函数的写法: (function() {  // body }()); 只能使用单引号 最后必须有一行空行, 不能有多余空行 不能有多余空格 空位/制表符距离为2 可以设置带分号,否则js中不能带分号。 "semi": [2, "always"] 不能 定义了却未使用的变量 alias中定义的简称只能用于js部分。 模块必须有一个根元素 整个页面有切换动画,那么页面的根元素不能有其他样式影响 Vue实例中 最后一个属性末不需要加逗号

Vue学习笔记十三:路由的跳转

有些话、适合烂在心里 提交于 2020-03-09 06:53:34
Vue学习笔记十三:路由的跳转 Vue版本:2.5.21 Vue-router版本:3.1.6 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>路由的跳转</title> </head> <body> <!-- 路由的跳转 路由的跳转方式有: *通过标签:<router-link to='/login'></router-link> *通过js控制跳转 this.$router.push({path:'/login'}) 区别: this.$router.push()跳转到指定url。会向history插入新的记录 this.$router.replace()同样是跳转到指定的url,但是这个方法不会向 history里面添加新的记录,点击返回,会跳转到上上一个页面。上一个记录时不存在的。 this.$router.go(-1)常用来作返回,读history里面记录后退一个 vue-router中的对象: $route路由信息对象,只读对象 $router路由操作对象,只写对象 --> <div id="app"></div> <script src=

react--路由

a 夏天 提交于 2020-03-08 08:37:19
1、路由的安装 cnpm install react-router-dom -S 2、路由的方式 HashRouter: 带hash值的router vue hash BrowserRouter: 不带hash值的router vue history 注意: 1、路由的配置项必须在HashRouter、BrowserRouter内部做配置 2、HashRouter、BrowserRouter内部只能拥有一个子元素 3、路由配置项常用的组件 4、Route 作用:当路径匹配成功以后,渲染相对应的组件 属性: path: 组件所对应的路径 component:需要渲染的组件 (组件渲染的方式) render:需要渲染的组件 (组件渲染的方式) exact:路径完全匹配 5、路由跳转的方式 1、link 2、NavLink 属性: activeStyle activeClassName 6、路由嵌套 7、路由渲染的方式 render:组件标签形式 1、不仅可以渲染组件 而且还可以渲染标签 2、 可以进行组件传值 以及逻辑判断 3、render渲染的组件默认是没有history location match 这三个属性的 如果需要使用 必须经过传递给组件 component:组价名称 1、只能渲染组件 2、凡是通过component进行组件渲染的 当前组件的props 中就有多三个属性

VUE路由继续改进

早过忘川 提交于 2020-03-07 20:33:56
为了学习嵌套路由,我们将原来的路由器给抽取出来! 抽取成一个单独的目录: index.js import Vue from 'vue' import VueRouter from "vue-router" Vue.use(VueRouter); let routes = [ { path:"/foo", component:()=>import("../views/Foo.vue") },{ path:"/bar", component:()=>import("../views/Bar.vue") },{ path:"/dynamic/:id", component:()=>import("../views/Dynamic.vue") } ]; // 路由器 (路由器中有路由列表) const router = new VueRouter({ routes }); // 到处路由器 export default router; 这样一抽取,main.js 瞬间整洁了很多! ———————————————————————————————————————————————— 上面做出调整,主要是为了测试嵌套路由! 上面是我从官网抄来的,我们照着它写就行了 我准备给Bar组件添加连个子组件 1, 配置路由列表 { path:"/bar", component:Bar, children:[

router

橙三吉。 提交于 2020-03-06 17:21:13
### Vue.js ## 一、 课堂目标 1. 掌握前端单页应用的原理 2. 掌握vue-router工作机制 3. 手写vue-router ## 二、 知识点 ### 2.1 什么是路由?前端有哪些路由?他们有 哪些特性? #### 2.1.1 History API #### 2.1.2 hash 模式 hash 路由模式是这样的:http://xxx.abc.com/#/xx。 有带#号,后面就是 hash 值的变化。 改变后面的 hash 值,它不会向服务器发出请求,因此也就不会刷新页面。并且每次 hash 值发生改变的时候,会触发 hashchange 事件。因此我们可以通过监听该事件,来知道 hash 值发生了哪些变化。比如我们可以如下简单的监听: function hashAndUpdate () { // todo 匹配 hash 做 dom 更新操作 }window.addEventListener('hashchange', hashAndUpdate); 我们先来了解下 location 有哪些属性,如下 * location.href 完整的 url * location.protocol 当前 URL 的协议,包括 :; 比如 https: * location.host 主机名和端口号,如果端口号是 80(http)或 443(https),

Vue-Router 源码分析(二) 设计思想及代码结构

帅比萌擦擦* 提交于 2020-03-06 08:02:19
根据VueRouter的执行流程,可以通过这三个步骤来理解它的设计思想: 第一步 :我们new VueRouter创建VueRouter实例的时候会通过深度遍历把传入的router属性对应的数组给解析一下,保存到一个Map中,每个Map对应router的一个元素,我们称之为路由记录,解析的时候会给每个路由记录增加一个正则表达式,用于<vuerouter-link>组件在渲染时查找哪个路由记录可以与之匹配 第二步 :解析<router-link></router-link>组件的时候首先获取名为to的props(例如<router-link to="/login"><a>登陆</a></router-link>里的to属性),然后会遍历第一步Map里的每个记录(路由记录),并用路由记录中的正则去匹配这个to值,看看该正则是否能匹配,如果能匹配则表示可以渲染这个路由记录对应的组件了,然后通过Vue内部的$createElement全局函数渲染一个原生DOM标签(默认为a标签,可以通过<router-link/>组件的tag这个props去修改它),渲染后会在这个DOM对象上绑定一个click事件,当click事件触发时,会调用VueRouter实例的push()方法去修改路由, 注意,VueRouter是通过click事件来触发路由的,不是通过a的href属性来触发