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更新路由地址,那么 script 中的这些字段不会清空
  • 需要初始化页面script中的外部变量,必须使用this.reload()
  • 如果在 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

你可能感兴趣的:(vue.js,前端,javascript)