Vue 实现手动刷新组件的方法

时间:2021-05-26

开发过程遇到了一个问题,就是我的 router-view 里面渲染出来的组件输入数据之后,我点击 路由视图外边的导航栏 router-link 按钮,可以实现清除 router-view 里面的数据,也就是使组件重新渲染。vm.$forceUpdate()这个方法可以使当前组件调用这个方法时,重新渲染组件。给 router-view 标签添加 key 属性将 key 绑定的值放在状态管理容器里面,通过 状态管理容器的 mutations 或者 actions 触发 key 值的变化,即可实现重新渲染组件的目的。相关实现代码如下

// store/view.jsconst state = { viewId: 1};const getters = { getViewId: state => { return state.viewId; }};const mutations = { setViewId: (state, payload) => { state.viewId++; }};const actions = { setViewId: (context, payload) => { context.commit("setViewId", payload); }};export default { namespaced: true, state, getters, mutations, actions};

放置 router-view 标签的Layout 组件


触发 viewid,使 router-view 对应的路由组件刷新的地方,比如导航栏组件。

methods: { fresh() { this.$store.dispatch("view/setViewId") }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章