vue项目中,新增或编辑后返回列表页,数据不刷新问题

场景:
新增编辑页是列表页的二级路由
在新增或编辑后列表页不刷新相应的数据

在父路由中:加一个@refresh="getKnowledgeList",自定义方法,传到子路由上,其中绑定的方法为获取列表页的数据方法

<template>
  <router-view v-if="hidden" :key="key" @refresh="getKnowledgeList"></router-
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js 2和Element UI,可以使用路由导航和事件总线来实现新增返回列表刷新面的效果。 1. 在路由导航定义列表路由 首先,在路由配置定义列表路由,例如: ```javascript const router = new VueRouter({ routes: [ { path: '/list', component: List }, { path: '/add', component: Add } ] }) ``` 其,List为列表的组件,Add为新增的组件。 2. 在新增提交数据并触发事件 在新增,通过Element UI的Form组件提交新增数据,并在提交成功后触发一个自定义事件,例如: ```html <template> <el-form @submit="onSubmit"> <!-- 表单字段 --> <el-button type="primary" native-type="submit">提交</el-button> </el-form> </template> <script> export default { methods: { onSubmit() { // 提交新增数据 this.$http.post('/api/add', this.formData) .then(response => { // 触发自定义事件 this.$emit('add-success') }) } }, data() { return { formData: {} } } } </script> ``` 在提交成功后,通过`this.$emit`触发一个自定义事件`add-success`,表示新增成功。 3. 在列表监听自定义事件并刷新数据列表,监听新增触发的自定义事件,并重新加载列表数据,例如: ```html <template> <div> <el-table :data="tableData"> <!-- 表头和列 --> </el-table> <el-button type="primary" @click="add">新增</el-button> </div> </template> <script> export default { mounted() { // 监听新增成功事件 this.$bus.$on('add-success', this.loadList) // 加载列表数据 this.loadList() }, beforeDestroy() { // 移除事件监听 this.$bus.$off('add-success', this.loadList) }, methods: { add() { // 跳转到新增 this.$router.push('/add') }, loadList() { // 加载列表数据 this.$http.get('/api/list') .then(response => { this.tableData = response.data }) } }, data() { return { tableData: [] } } } </script> ``` 在列表的`mounted`钩子函数,通过`this.$bus.$on`监听新增成功事件`add-success`,并在回调函数调用`loadList`方法重新加载列表数据。在`beforeDestroy`钩子函数,通过`this.$bus.$off`移除事件监听,避免内存泄漏。 在`add`方法,使用`this.$router.push`跳转到新增。在新增提交成功后,通过`this.$emit('add-success')`触发自定义事件,列表会收到通知并重新加载数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值