由于在子组件中自己实现滚动到底部的效果时,需要设置子组件页面自己的高度来允许滚动,导致在router-view视野下出现两个滚动条,很不美观,所以尝试使用$refs通信来实现对父组件页面元素的调用。
目标:通过$refs通信,实现子组件调用父组件,将页面自动滚动至最底部。
父组件页面代码:
子组件部分js代码:
因为在控制台中打印了this.$parent的值,对比uid后发现并不止一层父子关系,最后调用到父组件中的scrollRouterView()方法。
另一种写法:
在子组件中直接调用父组件中的routerView实例,直接对其进行操作。
注意事项:
父组件在对组件实例进行绑定时,需要选择能滚动的元素来绑定,否则scrollTo方法会报错并失效,router-view组件就无法调用srollTo方法,因此绑定了外层的section元素。
最终实现自动检查当前是否已经滚动到底部,若在底部,则随日志更新时自动显示最新消息(滚动到底部),若不在则不进行任何操作。
部分代码: