vue页面如何及时更新页面数据问题

 更新时间:2023年05月24日 14:56:49   作者:Greg_Zhong  
这篇文章主要介绍了vue页面如何及时更新页面数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue页面如何及时更新页面数据

什么是Vue单页面

代码层面,可以将一个页面HTML、JS、CSS代码统一写在一个 .Vue文件里。

页面展示:通过控制当前页面路径#号后面的路由名称,来达到控制(切换)不同页面的展示效果,请记住:这样显隐方式~页面不会重新请求api。

补充:(凡事有利也有弊)对于页面不需要二次刷新来说,不重新请求api,节约服务器资源,用户在界面上体验度好,但是,如果某个单页面需要二次加载(及时更新数据~比如:增删修改后),此时页面不会重新请求api!(为什么?在看一遍我前面的文字概述!)

vue页面为什么~需要重新渲染页面数据?

vue中,我们一般将请求方法,放在mounted( )中,但是只有第一次页面加载会触发mounted(),而后续是不会触发这个生命周期函数的!,若此时你做完增删修操作,数据怎么更新,怎么办?

如何让单页面二次(后续)访问页面,数据渲染(更新)

使用页面的watch侦听事件,监控路由发生改变,则请求需要更新数据的方法(函数),如下图:这里更新数据的方法是querySalaryList()。 

如图:1 和 2 前者,就是监听路由发生改变,就触发!导致其他页面也会受到影响,(我第一次使用时,用的就是1方式,导致我请求里的弹框,在跳转其他页面都出现,这是非常不好的!!!)怎么办,就使用 2 方式,当获取路由是特定路由,才触发事件…

vue A页面更新B页面数据

应用场景:全局定时刷新订单状态,等有待处理订单时,进行弹框提示,同时如果在订单列表的话,也有待处理订单状态,进行列表数据更新。

通过vuex 获取被更新页面的this实例化实现

store/modules新建个文件,我这里命名为:updateOrderList.js (获取指定页面的this实例化对象)
const state = function() {
  return {
    pageThis: '', // 组件实例
    pagePaths: ['/canteen/orderManage/list'], // 需要更新数据的组件路径
    timerTime: 1000 * 30,
    timerAction: null // 定时器
  }
}
const mutations = {
  // 更新pageThis
  updateThisMutation(state, that) {
    console.log(state)
    state.pageThis = that
  }
}
const actions = {
  // 获取组件this
  getComponentThisAction(context, that) {
    const path = that.$route.path
    const pagePaths = context.state.pagePaths
    if (pagePaths.includes(path)) {
      context.commit('updateThisMutation', that)
      if (context.state.timerAction) {
        return
      }
    }
  }
}
export default {
  namespaced: true,
  state: state,
  mutations: mutations,
  actions: actions
}

2.store/index.js下引入该文件:

import updateOrderList from './modules/updateOrderList'
const store = new Vuex.Store({
    updateOrderList
})

3.在需要更新的页面进行vuex方法引用(我这边定义为orderManage.vue文件):

import { mapActions } from 'vuex'
mounted() {
  this.getComponentThisAction(this) // 调用vuex方法用于获取实例化
},
beforeDestroy() {
    this.getComponentThisAction('') // 离开页面时销毁实例化
},
methods: {
    ...mapActions('updateOrderList', ['getComponentThisAction'])
})

4.在需要点击更新的地方进调用(我这边放在了侧边栏)

import store from '@/store'
mounted() {
    this.loadNewOrderData()
},
methods: {
  loadNewOrderData() {
    setTimeout(() => {
      this.$message({
        message: '数据更新了'
      })
      const pageThis = store.state.updateOrderList.pageThis
      if (pageThis && pageThis.$route.path === '/canteen/orderManage/list') {
        pageThis.getOrderList(pageThis.currentPage)
      }
      this.loadNewOrderData()
    }, 5000)
  }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • webpack+vue.js实现组件化详解

    webpack+vue.js实现组件化详解

    vue的开发体验还是比较愉悦的。首先文档非常友好,所以上手会比较快。其次,配合webpack和vue-loader,每个页面都是一个.vue文件,写起来很方便。所以很适合做组件化开发,这篇文章我们就来一起看看webpack+vue.js如何实现组件化。
    2016-10-10
  • Vue发布订阅模式实现过程图解

    Vue发布订阅模式实现过程图解

    这篇文章主要介绍了Vue发布订阅模式实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • vue.js实现带日期星期的数字时钟功能示例

    vue.js实现带日期星期的数字时钟功能示例

    这篇文章主要介绍了vue.js实现带日期星期的数字时钟功能,涉及vue.js基于定时器的日期时间运算与数值操作相关使用技巧,需要的朋友可以参考下
    2018-08-08
  • 前端Vue中常用rules校验规则(轮子)如电话身份证邮箱等校验方法例子

    前端Vue中常用rules校验规则(轮子)如电话身份证邮箱等校验方法例子

    当我们在开发应用时经常需要对表单进行校验,以确保用户输入的数据符合预期,这篇文章主要给大家介绍了关于前端Vue中常用rules校验规则(轮子)如电话身份证邮箱等校验方法的相关资料,需要的朋友可以参考下
    2023-12-12
  • Vue守卫零基础介绍

    Vue守卫零基础介绍

    导航守卫就是路由跳转过程中的一些钩子函数,这个过程中触发的这些函数能让你有操作一些其他的事儿的时机,这就是导航守卫,守卫适用于切面编程,即把一件事切成好几块,然后分给不同的人去完成,提高工作效率,也可以让代码变得更加优雅
    2022-09-09
  • 关于vue3 option api新玩法分享

    关于vue3 option api新玩法分享

    vue3新特性中最重要、内容最多的组合式api,组合式api既可以解决之前vue2开发的痛点,又提升了性能,下面这篇文章主要给大家介绍了关于vue3 option api新玩法的相关资料,需要的朋友可以参考下
    2022-06-06
  • vue 之 css module的使用方法

    vue 之 css module的使用方法

    这篇文章主要介绍了vue 之 css module的使用方法,css module目的为所有类名重新生成类名,有效避开了css权重和类名重复的问题,非常具有实用价值,需要的朋友可以参考下
    2018-12-12
  • Vue中使用 Echarts5.0 遇到的一些问题(vue-cli 下开发)

    Vue中使用 Echarts5.0 遇到的一些问题(vue-cli 下开发)

    这篇文章主要介绍了Vue中使用 Echarts5.0 遇到的一些问题(vue-cli 下开发),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue实现点击后文字变色切换方法

    Vue实现点击后文字变色切换方法

    下面小编就为大家分享一篇Vue实现点击后文字变色切换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • 解决IOS端微信H5页面软键盘弹起后页面下方留白的问题

    解决IOS端微信H5页面软键盘弹起后页面下方留白的问题

    微信H5项目,ios端出现了软键盘输完隐藏后页面不会回弹,下方会有一大块留白。这篇文章主要介绍了决微信H5页面软键盘弹起后页面下方留白的问题(iOS端) ,需要的朋友可以参考下
    2019-06-06

最新评论