vue关于this.$refs.tabs.refreshs()刷新组件方式
this.$refs.tabs.refreshs()刷新组件
当更改了用户信息后,需要刷新页面或者组件。
第一种:当前组件刷新
定义一个请求用户信息的方法,在需要时调用:
sessionStorage.setItem(‘userInfo‘,JSON.stringify(this.userInfo)); //从session缓存中获取
第二种:刷新父组件时
子组件某个需要的地方:
this.$emit(‘refresh‘);
父组件:
methods:{ refresh() { this.userInfo = JSON.parse(sessionStorage.getItem(‘userInfo‘)); } },
第三种:非关系组件
父组件:
<template> <top-bar ref="tabs"/> //需要刷新的组件(非关系组件) </template> methods:{ refresh() { this.$refs.tabs.refreshs(); //刷新子组件 ,top-bar是vue组件实例的名字 ,tabs时引用的名字,refreshs是Vue自带的方法 } },
vue组件重新加载(刷新)
方法:利用v-if控制router-view,在根组件APP.vue中实现一个刷新方法
<template> <router-view v-if="isRouterAlive"/> //路由的组件 </template> <script> export default { data () { return { isRouterAlive: true } }, methods: { reload () { this.isRouterAlive = false this.$nextTick(() => (this.isRouterAlive = true)) } } } </script>
然后其它任何想刷新自己的路由页面,都可以这样:
this.reload()
如何刷新当前组件
公用内容动态改变了全局参数,要求切换后刷新当前组件所有请求,或重新加载当前组件。
因为我们在项目中加入了vue-routerapp.vue,就可以通过控制router-view去达到我们需求的效果。
同时也要用到 provide/inject,个人列表类似vuex的辅助函数,跨越层级关系引入(注入)你的某个方法。
app.Vue
<template> <div id="app" v-loading.fullscreen.lock="fullscreenLoading" element-loading-spinner="rybloading" element-loading-text="正在请求数据" element-loading-background="rgba(0, 0, 0, 0.6)"> <router-view v-if="isRouterAlive"></router-view> </div> </template> <script> export default { name: 'app', provide() { return { reload: this.reload } }, data() { return { isRouterAlive: true } }, methods: { reload() { this.isRouterAlive = false this.$nextTick(function() { this.isRouterAlive = true }) } } } </script> <style lang="scss"> </style>
然后在你修改全局参数的组件中加入
data(){ return{ } }, inject:['reload'], // 在这个组件中注入这个方法 //...事件中调用 methods:{ changed(){ this.reload() //调用 } }
我在项目中的具体表现
通过切换期次,修改全局的请求参数,结合了Vuex,在下拉菜单所在的组件中注入app.vue中的方法,从而实现了目标效果。
切换期次,重新加载当前组件所有数据。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
使用elementuiadmin去掉默认mock权限控制的设置
这篇文章主要介绍了使用elementuiadmin去掉默认mock权限控制的设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-04-04vue2项目导出操作实现方法(后端接口导出、前端直接做导出)
这篇文章主要给大家介绍了关于vue2项目导出操作实现方法的相关资料,文中介绍的是后端接口导出、前端直接做导出,通过代码介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下2024-05-05vue组件传值(高级)、属性传值、反向传值、跨级传值实例详解
父组件通过属性传值给子组件,父组件修改数据后会刷新页面并重新传值给子组件,子组件可以修改父组件传的值并刷新自己的页面 但是并不会修改父组件中的值,这篇文章主要介绍了vue组件传值(高级)、属性传值、反向传值、跨级传值,需要的朋友可以参考下2022-09-09浅谈Vue3.0新版API之composition-api入坑指南
这篇文章主要介绍了Vue3.0新版API之composition-api入坑指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-04-04
最新评论