返回顶部
首页 > 资讯 > 精选 >Vue3如何实现刷新页面局部内容
  • 739
分享到

Vue3如何实现刷新页面局部内容

2023-07-02 17:07:49 739人浏览 八月长安
摘要

这篇文章主要介绍“vue3如何实现刷新页面局部内容”,在日常操作中,相信很多人在Vue3如何实现刷新页面局部内容问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3如何实现刷新页面局部内容”的疑惑有所帮助!

这篇文章主要介绍“vue3如何实现刷新页面局部内容”,在日常操作中,相信很多人在Vue3如何实现刷新页面局部内容问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3如何实现刷新页面局部内容”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

想要实现页面的局部刷新,我们只需要实现局部组件(dom)的重新渲染。在Vue中,想要实现这一效果最简便的方式方法就是使用v-if 指令。

在Vue2中我们除了使用v-if 指令让局部dom的重新渲染,也可以新建一个空白组件,需要刷新局部页面时跳转至这个空白组件页面,然后在空白组件内的beforeRouteEnter 守卫中又跳转回原来的页面。

如下图所示,如何在Vue3.X中实现点击刷新按钮实现红框范围内的dom重新加载,并展示对应的加载状态。

Vue3如何实现刷新页面局部内容

Vue3如何实现刷新页面局部内容

由于Vue3.X中script setup 语法中组件内守卫只有onBeforeRouteUpdateonBeforeRouteUpdate 两个api,因此我们来借助v-if 指令使局部dom重新渲染来实现这一需求。

第一步:定义状态标识

在全局状态中定义一个isRouterAlive 标识刷新状态,根据isRouterAlive 变化来重新渲染。isLoading 标识加载状态。

import { defineStore } from 'pinia'export const useAppStore = defineStore({  id: 'app',  state: () =>    ({      isRouterAlive: true,      isLoading: false    } as { isRouterAlive: boolean; isLoading: boolean })})

第二步、借用v-if 指令让dom节点重新渲染

<template>  <div class="common-layout">    <el-container>      <SideMenuView :collapse="isCollapse"></SideMenuView>      <el-container>        <NavMenuView v-model:collapse="isCollapse"></NavMenuView>        <TabsView></TabsView>        <!--核心 start-->        <el-main          v-loading="appStore.isLoading"          element-loading-text="页面加载中……"          element-loading-background="rgba(0, 0, 0, 0.8)"        >          <router-view v-if="appStore.isRouterAlive"> </router-view>        </el-main>        <!--核心 end-->        <el-footer>Footer</el-footer>      </el-container>    </el-container>  </div></template><script setup lang="ts">import SideMenuView from './SideMenuView.vue'import NavMenuView from './NavMenuView.vue'import TabsView from './TabsView.vue'import { useAppStore } from '@/stores/app'const appStore = useAppStore()const isCollapse = ref(false)</script><style lang="sCSS" scoped>…… CSS样式</style>

第三步、修改isRouterAlive 值,实现dom的重新渲染

<template>  <div    class="tabs-item cursor-pointer arrow-down"    ref="buttonRef"    @click="onClickOutside"  >    <el-icon><ArrowDownBold /></el-icon>  </div>  <el-popover    ref="popoverRef"    trigger="hover"    virtual-triggering    :virtual-ref="buttonRef"  >    <div class="arrow-down-item" @click="handleCommand('refresh')">刷新</div>    <div class="arrow-down-item" @click="handleCommand('closeOther')">      关闭其他    </div>    <div class="arrow-down-item" @click="handleCommand('closeLeft')">      关闭左侧    </div>    <div class="arrow-down-item" @click="handleCommand('closeRight')">      关闭右侧    </div>  </el-popover></template><script setup lang="ts">import { CloseBold, ArrowDownBold } from '@element-plus/icons-vue'import type { MenuItem } from '@/interface/menu'import { useMenuRouterStore } from '@/stores/menu-router'import { useTabsStore } from '@/stores/tabs'import { useAppStore } from '@/stores/app'const router = useRouter()const menuRouterStore = useMenuRouterStore()const tabsStore = useTabsStore()const appStore = useAppStore()// tabs功能操作const buttonRef = ref()const popoverRef = ref()const onClickOutside = () => {  unref(popoverRef).popperRef?.delayHide?.()}const handleCommand = (command: string) => {  if (command === 'refresh') {    appStore.isLoading = true // 展示数据加载状态    appStore.isRouterAlive = false // 设置为false,卸载dom    setTimeout(() => { // 此处采用了定时器,并没有采用网上比较常见的nextTick      appStore.isRouterAlive = true // 设置为true,重新挂载dom      appStore.isLoading = false // 隐藏数据加载状态    }, 500)  } else if (command === 'closeOther') {    tabsStore.closeOther()  } else {    tabsStore.closeLeftOrRight(command)  }}// ……</script><style lang="scss" scoped>…… CSS样式</style>

到此,关于“Vue3如何实现刷新页面局部内容”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Vue3如何实现刷新页面局部内容

本文链接: https://lsjlt.com/news/343455.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue3如何实现刷新页面局部内容
    这篇文章主要介绍“Vue3如何实现刷新页面局部内容”,在日常操作中,相信很多人在Vue3如何实现刷新页面局部内容问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3如何实现刷新页面局部内容”的疑惑有所帮助!...
    99+
    2023-07-02
  • Vue3实现刷新页面局部内容的示例代码
    目录第一步:定义状态标识第二步、借用v-if 指令让dom节点重新渲染第三步、修改isRouterAlive 值,实现dom的重新渲染想要实现页面的局部刷新,我们只需要实现局部组件(...
    99+
    2024-04-02
  • Vue如何实现页面的局部刷新
    本篇文章给大家分享的是有关Vue如何实现页面的局部刷新,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。利用Vue里面的provide+inject组合首先需要修改App.vue。...
    99+
    2023-06-22
  • vue中如何实现页面刷新以及局部刷新
    vue中如何实现页面刷新以及局部刷新,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一.全页面刷新修改 App.vue,代码如下:<template> &n...
    99+
    2023-06-26
  • Vue实现页面的局部刷新(router-view页面刷新)
    利用Vue里面的provide+inject组合 首先需要修改App.vue。 <template> <!-- 公司管理 --> <di...
    99+
    2024-04-02
  • jQuery如何实现AJAX定时刷新局部页面
    这篇文章主要介绍了jQuery如何实现AJAX定时刷新局部页面,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法一:局部刷新我们讲述到最多的...
    99+
    2024-04-02
  • Vue3页面局部刷新组件的刷新问题怎么解决
    步入正题,解决今天的问题代码首先我们要对app.vue进行修改代码:<template> <div id="app"> <nav-View v-show="login&...
    99+
    2023-05-17
    Vue3
  • vue中实现页面刷新以及局部刷新的方法
    目录一.全页面刷新二、局部刷新三、应用场景总结一.全页面刷新 1.修改 App.vue,代码如下: <template> <div id="app"> ...
    99+
    2024-04-02
  • Vue3中进行页面局部刷新组件刷新的操作方法
    目录前言开始操作vue2和vue3的区别vue2vue3Vue2和Vue3的钩子函数生命周期对照步入正题,解决今天的问题代码前言 今天在给vue3的项目中进行数据绑定的时候,发现我删...
    99+
    2022-12-20
    Vue3页面局部刷新 Vue3组件刷新 vue局部刷新
  • 如何实现ajax局部刷新
    这篇文章主要介绍了如何实现ajax局部刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ajax局部刷新 <script>&nb...
    99+
    2024-04-02
  • JQuery中如何实现ajax局部刷新
    这篇文章给大家分享的是有关JQuery中如何实现ajax局部刷新的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JQuery 再谈ajax局部刷新。案例: 描述: 1. 点击登...
    99+
    2024-04-02
  • 微信小程序如何实现局部刷新触发整页刷新效果
    小编给大家分享一下微信小程序如何实现局部刷新触发整页刷新效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图如上图所示,头部...
    99+
    2024-04-02
  • 【Flutter】Flutter 实现局部刷新
    文章目录 一、前言二、Flutter 局部刷新的基本概念1. 什么是局部刷新2. 为什么需要局部刷新 三、Flutter 的局部刷新实现1. 使用 setState 实现局部刷新2. 使...
    99+
    2023-10-26
    flutter 前端 ios android 原力计划
  • JavaScript如何实现页面的刷新
    这篇文章主要讲解了“JavaScript如何实现页面的刷新”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript如何实现页面的刷新”吧! ...
    99+
    2024-04-02
  • Ajax如何实现局部刷新的方法
    本篇内容主要讲解“Ajax如何实现局部刷新的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ajax如何实现局部刷新的方法”吧!前言最近复习了一下jQuery的一些内容,特此整理一下一些能用的...
    99+
    2023-06-08
  • 聊聊vue3中如何刷新当前页面
    本篇文章给大家带来了关于vue3 的相关知识,其中将给大家聊聊vue3中如何刷新当前页面,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。1.业务场景一般我们在删除或者编辑完表格数据的时候,会再次请求接口来刷新表格的数据。如果是同时有好几...
    99+
    2023-05-14
    前端 Vue.js
  • vue中实现全页面或局部刷新的方法是什么
    今天就跟大家聊聊有关vue中实现全页面或局部刷新的方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。vue中怎么实现页面刷新一.全页面刷新修改 App.vue,代码如下:<...
    99+
    2023-06-22
  • AngularJS如何实现页面定时刷新
    这篇文章主要介绍了AngularJS如何实现页面定时刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有时我们在前端可能会有这样的需求:1、...
    99+
    2024-04-02
  • Ajax如何实现页面自动刷新
    这篇文章主要介绍了Ajax如何实现页面自动刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Ajax简介:AJAX即“Asynchronous Javascript And ...
    99+
    2023-06-08
  • 纯JS如何实现AJAX局部刷新功能
    小编给大家分享一下纯JS如何实现AJAX局部刷新功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!js有什么特点1、js属于一种解释性脚本语言;2、在绝大多数浏览器的支持下,js可以在多种平台下运行,拥有着跨平台特性;3、...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作