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