vue:this.reload()跟this.$router.replace的区别

this.reload() 页面是否会执行 created, 它跟 this.$router.replace的区别:

1、新建路由地址:url=xxxx/loanBill?companyId=company0001

2、通过调用save接口,路由地址需要修改成 url=xxxx/loanBill?companyId=company0001&rowId=222

3、使用
this.$replace({
  path: 'loanBill',
   query: {
   	companyId: this.$route.query.companyId,
   	rowId: '222'
   }
 })

4、页面中有些字段不需要使用绑定到data函数中,所以自定义script的顶部,页面查看更清晰
<script>
  let SEARCH_CONFIG,
      REF_SEARCH,
      BUTTON_TYPE = '',
      REPAYMENT_LOAN = [],
      initReimburseData = {} // 初始化数据
</script> 

区别:

  • this.$replace更新路由地址:1、那么 script 中的这些字段不会清空,2、但是data数据会初始化,3、并且当前页面的生命周期会重新执行(created,destroted)
  • this.reload() :1、需要初始化页面script中的外部变量,必须使用 2、页面会闪一下,不方便用户
  • 如果在 this.$replace() 函数后在 增加this.reload() 想当于当前页面初始化一遍(根据以上对比二选一)
  • script中的缓存可以增加到 computed中,这样也不需要使用 this.reload() ,直接使用this.$replace()即可

它们都是页面初始化, url地址中没有rowId,reload可以使用,最终也是对路由进行刷新,会清空页面中的缓存, this.$replace() 不会,只会初始化data中的数据

一个祖先组件通过设置provide/inject向其所有子孙后代注入一个依赖,不论组件层次有多深
参考地址:https://blog.csdn.net/u012211003/article/details/107567143

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值