当前位置: 首页 > news >正文

网站素材网皓丽智能会议平板官网

网站素材网,皓丽智能会议平板官网,网站开发 需求文档,网络seo天津如何保存页面的当前的状态? 既然是要保持页面的状态(其实也就是组件的状态),那么会出现以下两种情况:组件会被卸载:(1)将状态存储在LocalStorage / SessionStorage优点:缺…

如何保存页面的当前的状态?

  • 既然是要保持页面的状态(其实也就是组件的状态),那么会出现以下两种情况:
    • 组件会被卸载:
      • (1)将状态存储在LocalStorage / SessionStorage
        • 优点:
        • 缺点:
      • (2)路由传值
        • 优点:
        • 缺点:
    • 组件不会被卸载:
      • (1)单页面渲染
        • 优点:
        • 缺点:
  • 用keep-alive缓存页面

既然是要保持页面的状态(其实也就是组件的状态),那么会出现以下两种情况:

组件会被卸载:

(1)将状态存储在LocalStorage / SessionStorage

只需要在组件即将被销毁的生命周期 componentWillUnmount (react)中在 LocalStorage / SessionStorage 中把当前组件的 state 通过 JSON.stringify() 储存下来就可以了。在这里面需要注意的是组件更新状态的时机。比如从 B 组件跳转到 A 组件的时候,A 组件需要更新自身的状态。但是如果从别的组件跳转到 B 组件的时候,实际上是希望 B 组件重新渲染的,也就是不要从 Storage 中读取信息。所以需要在 Storage 中的状态加入一个 flag 属性,用来控制 A 组件是否读取 Storage 中的状态。

优点:

兼容性好,不需要额外库或工具。
简单快捷,基本可以满足大部分需求。

缺点:

状态通过 JSON 方法储存(相当于深拷贝),如果状态中有特殊情况(比如 Date 对象、Regexp 对象等)的时候会得到字符串而不是原来的值。(具体参考用 JSON 深拷贝的缺点)
如果 B 组件后退或者下一页跳转并不是前组件,那么 flag 判断会失效,导致从其他页面进入 A 组件页面时 A 组件会重新读取 Storage,会造成很奇怪的现象

(2)路由传值

通过 vue-router 的 Link 组件的 prop —— to 可以实现路由间传递参数的效果。
在这里需要用到 state 参数,在 B 组件中通过 history.location.state 就可以拿到 state 值,保存它。返回 A 组件时再次携带 state 达到路由状态保持的效果。

优点:

简单快捷,不会污染 LocalStorage / SessionStorage。
可以传递 Date、RegExp 等特殊对象(不用担心 JSON.stringify / parse 的不足)

缺点:

如果 A 组件可以跳转至多个组件,那么在每一个跳转组件内都要写相同的逻辑。

组件不会被卸载:

(1)单页面渲染

要切换的组件作为子组件全屏渲染,父组件中正常储存页面状态。

优点:

代码量少
不需要考虑状态传递过程中的错误

缺点:

增加 A 组件维护成本
需要传入额外的 prop 到 B 组件
无法利用路由定位页面

用keep-alive缓存页面

除此之外,在Vue中,还可以是用keep-alive来缓存页面,当组件在keep-alive内被切换时组件的activated、deactivated这两个生命周期钩子函数会被执行
被包裹在keep-alive中的组件的状态将会被保留:

<keep-alive><router-view v-if="$route.meta.keepAlive"></router-view>
</kepp-alive>

router.js

{path: '/',name: 'xxx',component: ()=>import('../src/views/xxx.vue'),meta:{keepAlive: true // 需要被缓存}
},
http://www.yayakq.cn/news/302112/

相关文章:

  • 什么免费网站可以链接域名寿光建设局网站
  • 外贸网站排行旅游网站设计风格
  • 微信公众平台做微网站吗企业建设企业网站的好处有哪些
  • 百度推广自己做网站律师事务所网站设计
  • 宁国市城乡与住房建设网站wordpress上传音乐文件
  • 迎访问中国建设银行网站-有谁知道哪个网址
  • 东莞企业型网站建设网站建设价格标准报价
  • 网站专题页面案例wordpress 在线答题
  • 怎么让别人访问我建的网站上海外贸公司黄页
  • 旅游电子商务网站开发实验报告网站建设客户分析
  • 前端静态网站模板东莞市网络优化推广公司
  • 建筑效果图网站有哪些网站的全栈建设
  • 郑州做网站公司自己创建网站怎么赚钱
  • 手机网站建设免费网站建设与管理办法
  • 网站建设免费按词收费自己开网站工作室
  • 现在不流行做网站了么内容分享网站设计
  • 找公司做网站需要咨询什么问题app开发定制公司有哪些
  • 图片识别 在线百度识图seo网站推广如何做
  • 东营网站建设培训学校优化网站推广排名
  • 东莞市国外网站建设平台佛山网站建设排名
  • 做个网站的价格中国十大网络公司排名
  • 重庆主页网站建设汕头市城市建设开发总公司
  • dede 友情链接 网站简况 调用小型建筑公司名字大全
  • 西安企业网站制作工信部网站备案怎么查询
  • 网站名称要注册吗推广页面
  • 企业网站建设的请示湖南高端网站制作公
  • 机顶盒做网站大型网站权限设计
  • 代写网站万州区建设局官方网站
  • 国外网站赚钱投资网站php源码
  • 海口网站建设优化案例网站开发前端框架