Vue实现全局设置一个刷新按钮 只刷新当面路由页面 不跳转操作功能

javascript 复制代码
项目中实现实现全局设置一个刷新按钮 只刷新当面路由页面 不跳转操作功能
PSPPSPS 
比如我在layout里面的全局设置一个刷新功能按钮
进入到了a b c的路由页面 基于筛选条件搜索后返回的数据
点击全局刷新的按钮对应的每个路由页面返回初始化的状态数据
并不跳转默认页面 实现刷新操作功能

这里需要使用到兄弟组件功能 具体如下

Nuxt项目

  1. 创建一个全局事件总线(EventBus)
javascript 复制代码
在 plugins/ 目录下新建文件:event-bus.ts
javascript 复制代码
// plugins/event-bus.js
import Vue from 'vue'

export const EventBus = new Vue()
javascript 复制代码
然后在 nuxt.config.js 中注册它:
javascript 复制代码
// nuxt.config.js
export default {
  plugins: [
    '~/plugins/event-bus'
  ]
}
  1. 在 layout 组件中 emit 事件
javascript 复制代码
layout就是你的全局页面 相当于header  container footer 的总布局里面
具体写在哪里看你的项目的全局页在哪
javascript 复制代码
假设你的全局刷新在这里
 <el-button type="primary" @click="btnReset">刷新</el-button>
 <script>
 import { EventBus } from '~/plugins/event-bus'//引入使用

btnReset() {
  EventBus.$emit('global-refresh')
}
 </script>

3.在你的a b c 等的路由页面修改

javascript 复制代码
import { EventBus } from '~/plugins/event-bus'

created() {
  this.loadData()
  EventBus.$on('global-refresh', this.handleGlobalRefresh)
},
beforeDestroy() {
  EventBus.$off('global-refresh', this.handleGlobalRefresh)
},
methods: {
resetFilters() {
  this.queryParam.regionIds = [];// 默认的条件保持空
  this.selectedNodes = [];// 默认的条件保持空
}
  handleGlobalRefresh() {
  this.resetFilters();//这个是你的筛选条件 写这个点击刷新回到初始化状态数据
  this.loadData();
  }
}

VUE项目

相关推荐
SuperEugene1 小时前
Vue3 模板语法规范实战:v-if/v-for 不混用 + 表达式精简,避坑指南|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
Luna-player1 小时前
Vue 3 + Vue Router 的路由配置,简单示例
前端·javascript·vue.js
angerdream1 小时前
最新版vue3+TypeScript开发入门到实战教程之Vue3详解props
javascript·vue.js
~欲买桂花同载酒~2 小时前
项目优化-vite打包优化
前端·javascript·vue.js
踩着两条虫3 小时前
AI 驱动的 Vue3 应用开发平台 深入探究(二十):CLI与工具链之构建配置与Vite集成
前端·vue.js·ai编程
踩着两条虫3 小时前
AI 驱动的 Vue3 应用开发平台 深入探究(二十):CLI与工具链之自定义构建插件
前端·vue.js·ai编程
极梦网络无忧5 小时前
基于 Vite + Vue3 的组件自动注册功能
前端·javascript·vue.js
雪碧聊技术6 小时前
前端vue代码架子搭建
前端·javascript·vue.js·前端项目代码框架搭建
极客小云6 小时前
【Electron-Vue 企业级安全启动模板:electron-vue-theme-template 使用指南】
vue.js·安全·electron
计算机学姐6 小时前
基于SpringBoot的校园二手书籍交易系统【个性化推荐+数据可视化统计+我买到的+我卖出的】
vue.js·spring boot·后端·mysql·信息可视化·intellij-idea·mybatis