首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

vue-router的超神之路

,会缓存不活动的组件实例,而不是销毁它们。...比如你有这样列表页,点击进去是一个详情页,然后返回的时候列表刷新了,找不到原来的位置,这种时候对用户的体验非常不好。我们看一下例子。 ? 那么我们如何去优化它?...思路就是在用户返回到列表页的时候不刷新数据,只有在用户主动进入列表的时候才会刷新数据,我们看一下效果 ?...,都要手动加上相应的逻辑,这样看起来很不方便,那么我们有没有好的解决办法呢?...这些是我去年做项目时做的一些路由上的优化,我想这些优化对于有些同学应该能够有点帮助。所以就总结了下来,提供大家参考。后续还有两节,应该属于工程化方面的优化了,准备好好写写下篇再发。

1.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    vue的几个提效技巧

    v-for动态组件的使用,componentList:['ColorIn','LineIn','Header','Footer']使用下面的代码即可将代码依次循环的区别v-pre相当于不编译,直接显示,v-once相当于只编译一次,后面的更新不编译了Vue.set()使用环境① 当你利用索引直接设置一个数组项时② 当你修改数组的长度时③ 对象属性的添加或删除时由于...$forceUpdate();keep-alive使用环境当这个页面没有数据更新,或者是想保存状态,下次进来还是这样子的时候,例如淘宝查看列表页,点进去查看详情之后,返回列表页依旧到上次浏览到的地方,都可以使用...( vm => {// 通过 vm 访问组件实例})}$route路由信息不刷新问题使用场景有的时候,你从 /user?...,收藏,点赞等公用且逻辑一样(有些逻辑是根据页面的不同而不同的不建议使用混入)等场景都可以使用混入实际使用这里我直接封装了一个vue新开窗口的混入方法,引入了以后,混入中的所有data,methods,

    59990

    vue的几个提效技巧_2023-03-15

    v-for动态组件的使用,componentList:['ColorIn','LineIn','Header','Footer']使用下面的代码即可将代码依次循环的区别v-pre相当于不编译,直接显示,v-once相当于只编译一次,后面的更新不编译了Vue.set()使用环境① 当你利用索引直接设置一个数组项时② 当你修改数组的长度时③ 对象属性的添加或删除时由于...$forceUpdate();keep-alive使用环境当这个页面没有数据更新,或者是想保存状态,下次进来还是这样子的时候,例如淘宝查看列表页,点进去查看详情之后,返回列表页依旧到上次浏览到的地方,都可以使用...( vm => {// 通过 vm 访问组件实例})}$route路由信息不刷新问题使用场景有的时候,你从 /user?...,收藏,点赞等公用且逻辑一样(有些逻辑是根据页面的不同而不同的不建议使用混入)等场景都可以使用混入实际使用这里我直接封装了一个vue新开窗口的混入方法,引入了以后,混入中的所有data,methods,

    59830

    适用于既有大型MPA项目的“微前端”方案

    要完成业务域内的全单页,需要完成的工作量和踩的坑已不敢想象,更别说仅实现了业务域内单页,带来的实际体验提升并不大。那我们还有别的办法吗?...考虑到单页化改造后,难免有一定的内存泄漏,再内存占比达到一定阈值时,在页面跳转时强制进行整页刷新。该特性通过 performance.memoryAPI 实现,浏览器兼容性较差,仅作辅助使用。 ?...即使在确定这些组件是React组件和挂载节点的情况下,由于基座和子页面React实例隔离,基座内的 unmountComponentAtNode并不能彻底清理这些组件实例。...但进入到微前端的 SPA 时代后,虽然基座本身也会处理子页面的副作用,但仍需要业务页面的开发者随时保持 我注册,我清理的意识,不留隐患。...下面是改造前后的对比图,测试前已清除缓存。在页面静态资源已缓存的情况下,速度的差异较小,但相对于多页切换时的整页白屏,改造后的体验要好很多。 改造前: ? 改造后: ?

    1.8K20

    vue的几个提效技巧

    v-for动态组件的使用,componentList:['ColorIn','LineIn','Header','Footer']使用下面的代码即可将代码依次循环的区别v-pre相当于不编译,直接显示,v-once相当于只编译一次,后面的更新不编译了Vue.set()使用环境① 当你利用索引直接设置一个数组项时② 当你修改数组的长度时③ 对象属性的添加或删除时由于...$forceUpdate();keep-alive使用环境当这个页面没有数据更新,或者是想保存状态,下次进来还是这样子的时候,例如淘宝查看列表页,点进去查看详情之后,返回列表页依旧到上次浏览到的地方,都可以使用...( vm => {// 通过 vm 访问组件实例})}$route路由信息不刷新问题使用场景有的时候,你从 /user?...,收藏,点赞等公用且逻辑一样(有些逻辑是根据页面的不同而不同的不建议使用混入)等场景都可以使用混入实际使用这里我直接封装了一个vue新开窗口的混入方法,引入了以后,混入中的所有data,methods,

    60900

    【干货】Android 一线互联网面试题汇总,13模块200+题,征服面试官不是梦!

    WebView 12.进程保活 13.其他相关面试题 1.四大组件 四大组件是什么 四大组件的生命周期 Activity之间的通信方式 横竖屏切换的时候,Activity 各种情况下的生命周期 Activity...各种情况下的生命周期 Fragment之间传递数据的方式?...Java多线程引发的性能问题,怎么解决? 启动页白屏及黑屏解决? 启动太慢怎么解决? 怎么保证应用启动不卡顿?...的优化你知道哪些 有没有用过第三方WebView组件?...我希望读者们能知道深入了解的含义,这真的是一个过程。 自己的知识准备得怎么样,这直接决定了你能否顺利通过一面和二面,所以在面试前来一个知识梳理,看需不需要提升自己的知识储备是很有必要的。

    75201

    SSR服务器端渲染(Next.js总结和豆瓣电影项目)「建议收藏」

    布局组件的使用(layouts文件夹) 第一步:创建布局组件 在根目录里创建一个layouts文件夹,里面写我的布局组件,上面导航是共用的,但是下面主体内容会动态变化,怎么实现呢?...直接使用react里面的this.props.children属性即可动态渲染主体内容 第二步:使用布局组件(核心:把布局组件写成双标签形式,在双标签里放入要显示的动态内容即可) 效果...: 同样方式,在teacher和student页面也把Mynav组件去掉,也改成布局组件Mylayout动态内容显示方式(这样Mynav组件就只有在Mylayout里引入一次,这样就实现了布局组件来布局...全局布局组件 上面的Mylayout布局组件在主页,教师页和学生页等每个页面都引入了一次,有没有办法全局一次引入呢?...使用next里的浅层路由即可 其实就是使用Link组件有一个as属性,它可以给路径起别名,在教师页面操作如下: 解决浅层路由刷新页面找不到页面的问题 上面的教师详情页当刷新页面时,会找不到页面,因为通过

    2.2K40

    微信小程序实践:2.3 可滚动的容器组件之 scroll-view

    5.6,什么情况下需要使用 scroll-view 的下拉刷新,而不使用页面本身的下拉刷新? 5.7,scroll-view 内不支持嵌套原生组件吗?...5,如果一个瀑布流页面中有许多图,上面的图比下面的图加载慢,当看到下面图的时候,上面的图突然加载出来,把下面的图挤跑了,这种情况有没有办法解决?是什么技术?...我们只能在JS里动态改变scroll-top、scroll-left这两个属性绑定的变量,然后视图渲染后,组件会自动发生滚动。...但是这个属性在某种情况下会给开发者带来意想不到的bug。 vue作为响应式框架,视图自动响应数据更新而重新渲染。...如果某个tab页是一个瀑布流,其tabData.list可能是一个越来越大的数据,不超过256KB是很难的。 这就犯了「每次setData都传递大量新数据」的忌讳,是不被微信小程序官方建议的。

    15.3K30

    Vue刷新当前页面(成功)

    查了资料一共有三种办法,只试过两种,都成功了,介绍一下。 一、直接路由刷新 vue自带了刷新的办法 this.$router.go(0); 但是这个办法会让整个当前页面刷新,相当于F5。...如果项目中只是做一个编辑修改操作,希望修改后数据立马改变,但是使用此方法会出现一个短暂的空白页(如下图),用户效果特别不好,不推荐。...二、使用provice和inject结合的方法 这种方法会局部刷新,不会出现整个页面刷新的效果,非常适合项目中更新操作后的刷新页面。...1.首先找到vue项目中的App.vue,这是根组件,相当于所有*.vue的父组件了,所以在这里去定义reload可以全局使用。...3.然后在需要刷新的子组件页面中添加inject。

    3.6K30

    Mysql专栏 - 缓冲池的内部结构(一)

    可以看作是一个内存结构的组件,可以理解为一大片的内存区域,在默认的情况下它是「128m」的空间大小。...,内存的操作是十分快的,但是硬盘的刷新速度更不上内存,所以就会出现内存和硬盘上的数据不一致的问题,种由于某些操作更新之后的内容更新过的数据页在mysql当中统称为脏页。...: ❝ 所属表空间 数据页编号 缓存页在缓冲池里面的所属地址 ❞ 描述信息有多大呢?...(同样也是在每一个节点存在一个指针指向对应的缓存页) ❝提示:如果还记得本系列的第一篇(前言地址)文章中简单的提到了io线程定期把缓存页刷新到磁盘文件中如何找到脏页的?...逻辑结构和物理结构 我们在SQL语句里都是用到的是表和行的概念,但是之前我 们提到的表空间、数据页,他们之间的「关系」是什么呢?

    86520

    React 中的一些 Router 必备知识点

    其实路由在设计的时候不仅仅是一个由几个简单词汇和斜杠分隔符组成的链接,偶尔也可以去考虑有没有更“优雅”的设计方式和技巧。而在这背后,路由和组件之间的协作关系是怎样的呢?.../native/guides/quick-start) 来实现 React 单页应用的路由控制,它通过管理 URL,实现组件的切换,进而呈现页面的切换效果。...(存储在 state 中的通病),So,灰常不推荐~~(其实不想明文可以进行加密处理,但一般情况下敏感信息是不建议放在 URL 中传递的~) 场景 2 描述:编辑/详情页,想要共用一个页面,URL 由不同的参数区分...场景 3 描述:新增页和编辑页辣么像,我的新增页也想和编辑/详情共用一个页面。但是新增页不需要 id,编辑/详情页需要 id,使用同一个页面怎么办?...里可以取到(不推荐不推荐不推荐,刷新会没~) Switch <Route path="/router/:type" render={() => 影像</div

    2.7K20

    React 中的一些 Router 必备知识点

    其实路由在设计的时候不仅仅是一个由几个简单词汇和斜杠分隔符组成的链接,偶尔也可以去考虑有没有更“优雅”的设计方式和技巧。而在这背后,路由和组件之间的协作关系是怎样的呢?.../native/guides/quick-start) 来实现 React 单页应用的路由控制,它通过管理 URL,实现组件的切换,进而呈现页面的切换效果。...(存储在 state 中的通病),So,灰常不推荐~~(其实不想明文可以进行加密处理,但一般情况下敏感信息是不建议放在 URL 中传递的~) 场景 2 描述:编辑/详情页,想要共用一个页面,URL 由不同的参数区分...场景 3 描述:新增页和编辑页辣么像,我的新增页也想和编辑/详情共用一个页面。但是新增页不需要 id,编辑/详情页需要 id,使用同一个页面怎么办?...),在 this.props.location.state 里可以取到(不推荐不推荐不推荐,刷新会没~) Switch <Route path="/router/:type"

    2.9K40

    Vue-Router学习笔记,持续记录

    前端路由 1. hash 模式 随着 ajax 的流行,异步数据请求交互运行在不刷新浏览器的情况下进行。而异步交互体验的更高级版本就是 SPA —— 单页应用。...单页应用不仅仅是在页面交互是无刷新的,连页面跳转都是无刷新的,为了实现单页应用,所以就有了前端路由。...类似于服务端路由,前端路由实现起来其实也很简单,就是匹配不同的 url 路径,进行解析,然后动态的渲染出区域 html 内容。但是这样存在一个问题,就是 url 每次变化的时候,都会造成页面的刷新。...那解决问题的思路便是在改变 url 的情况下,保证页面的不刷新。...解决办法:router-view页面添加key,将fullPath作为每个页面的唯一值,当key值不同时,页面就会刷新

    9.3K40

    70%以上业务由H5开发,手机QQ Hybrid 的架构如何优化演进?

    之后我加入了腾讯QQ会员团队,负责QQ会员在移动终端上的技术,同时也有很艰巨的任务:维护手机QQ中的所有H5 hybrid开发的框架,即WebView组件的技术工作。...其次,发布在CDN上的静态页面内部不包含item数据,所以用户第一眼看到从CDN下载的页面,里面的banner区域和item区域处于一片空白,这对用户体验也是很大的伤害。...在一些低端机型上WebView reload非常耗时,用户能很明显感觉到整个WebView H5页面白屏一下,然后才刷新出新的内容。...拿到data数据之后,我们和H5页面做了约定,由native侧调用页面的固定刷新函数,并传递数据给页面。页面会去局部刷新自己的DOM节点,这样即使页面需要刷新也不会reload整个页面。 ?...这里没有提到模板更新的场景,模板更新是指我们抽取出来的template在我们server是有可能动态变化的,这个时候的加载流程和我们前面提到的就不太一样了,当template有变化时,还是按照原来走HTML

    1.8K10

    Vue Router 实现动态路由和常见问题解决方案

    我选择的解决方案是:区别对待需要引用布局组件的 component 属性,使用简短字符串代替布局组件,使用文件路径字符串代替页面引入。 具体实现可以看后面的代码实例。...动态路由刷新后 404 这应该是本方案中最常见的一个错误之一,其原意是很多人在创建「基本静态路由」的时候回把 404 页面的路由也加入在里面,从而导致页面加载初期动态路由还没有加入到路由实例中,匹配范围最广的...解决方法就是将 404 页面的路由也加入到动态路由中。 动态路由刷新后变空白页 造成这一问题的原因有很多,我这里遇到的问题是使用 参考文章3 解决的,但具体原理我还没弄清楚,等我做一下研究再来更新。...动态路由页面刷新时 Title 不稳定 造成这一问题的原因很简单:因为页面刷新的时候路由信息还没加载进来,所以根本没有标题信息可供加载。但是我还没找到比较好的解决方案,同样等我研究一下再更新。...参考 大师兄:Vue 动态路由的实现…… Vue Router 文档页面 rambo:vue router 动态路由 刷新后变空白页

    3.4K20

    前端路由简介以及vue-router实现原理

    前端路由 1. hash 模式 随着 ajax 的流行,异步数据请求交互运行在不刷新浏览器的情况下进行。而异步交互体验的更高级版本就是 SPA —— 单页应用。...单页应用不仅仅是在页面交互是无刷新的,连页面跳转都是无刷新的,为了实现单页应用,所以就有了前端路由。...类似于服务端路由,前端路由实现起来其实也很简单,就是匹配不同的 url 路径,进行解析,然后动态的渲染出区域 html 内容。但是这样存在一个问题,就是 url 每次变化的时候,都会造成页面的刷新。...那解决问题的思路便是在改变 url 的情况下,保证页面的不刷新。...Vue 实例中,在使用的时候我们需要全局用到 vue-router的router-view和router-link组件,以及this.

    1.6K60

    权限管理模块中动态加载Vue组件

    当用户注销登陆时,将localStorage中的数据清除。 组件动态加载 在权限管理模块中,这算是前端的核心了。...由于菜单资源是非常敏感的,因此最好不要不要将其保存到本地,故舍弃方案1,但是方案2的工作量有点大,因此我采取办法将之简化,采取的办法就是使用路由中的导航守卫。...2.如果不是登录页面的话,我先从store中获取当前的登录状态,如果未登录,则通过路由中meta属性的requireAuth属性判断要去的页面是否需要登录,如果需要登录,则跳回登录页面,同时将要去的页面的...,因此我们在formatRoutes方法中动态的加载需要的组件即可。...菜单渲染 最后,在Home页中,从store中获取菜单json,渲染成菜单即可,相关代码可以在Home.vue中查看,不赘述。 OK,如此之后,不同用户登录成功之后就可以看到不同的菜单了。

    1.9K60

    鱼和熊掌兼得:Next.js 混合渲染

    但也存在明显的缺陷——只能用来渲染静态内容,使得一个原本很厉害的方案很难有用武之地。那么,有没有办法扩大其适用场景? 有。...所以只要想办法应对内容变化,就有可能把 SSG 的适用场景从经常不变的“静态内容”扩大到不经常变的“动态内容” 极限情况下,“不经常变”等价于“不是每一次都变”,也就是说,除了实时/个性化等每时每刻都动态变化的内容...除非,编译时不生成全量页面…… 而面向用户请求的 SSR 恰好能够提供合适的更新时机,同时作为编译的下游,SSR 有机会拦住漏网之鱼。...,没有应用服务器的高额机器成本,也不用担心 SSR 在线服务的可用性和运维工作 借助 SSR 扩大 SSG 的应用场景不得不考虑与之俱来的成本问题,那么,有没有成本更低的办法?...SSR 能够有效缩短页面加载过程中的白屏时间,同时提供页面内容一次性完整呈现的畅快体验,与之相比,CSR 渲染性能依赖客户端环境、数据请求滞后等缺点变得无限大,大到掩盖了 CSR 的高光优势: 无刷新加载内容

    3.1K20
    领券