vue 自定义组件切换时刷新

2023-11-03

我们在使用vue自定义组件时,常常会遇到切换组件的操作,但是切换组件的时候,如果没有处理好,组件内容就不会刷新。如:标签页下放自定义组件,切换标签时,组件里面的内容不刷新,导致页面停留在上一次的操作。那么我们应该如何来解决这个问题呢?接下来说说我在网上看到的两种方法

一、通过v-if来刷新

当我们在父辈组件请求后台接口完成后要刷新子孙组件时,我们就可以在父辈组件调用以下函数,实现子孙组件的刷新(感觉这种方法怪怪的,个人喜欢第二种方法)
上代码:

//父组件内容
<child v-if="show"></child>

js:     
refresh(){
     this.show = false;
     this.$nextTick(() => {
         this.show = true;
            });
}

补充:使用v-if来有条件的渲染组件,还可以避免父组件异步传值失败的问题。比如我们要在父组件请求后台数据,并且要将数据在子组件渲染,这时就可以用v-if,有数据时才渲染子组件,就不会出错了。

二、通过key来刷新

key 属性不是给开发人员用的,而是用来 给vue 元素渲染的时候用的,每次渲染的时候会去拿这个key 值做对比,如果这一次的key 值和上一次的key值是不一样的才会重新渲染dom 元素,否则保持上一次的元素状态。
根据这个原理我们可以给key 直接绑定一个 时间戳

代码

父组件
<button @click="handleLoad">点击重新加载子级</button>
<children :key="timer"></children>

  methods: {
        handleLoad () {
            this.timer = new Date().getTime()
        }
    }

每次点击的时候都会重新加载子组件 ,created() 生命周期函数每次都会执行,重新生成dom 元素。也省的用watch 去监听了!

总结:以上两种方法都能实现,应该还有其他的方式,知道的小伙伴可在下方评论哦。
另外:本文纯属个人笔记,如有说错的地方,希望大家积极纠正

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue 自定义组件切换时刷新 的相关文章

  • Element Plus 配置自动按需引入后,手动引入组件,组件样式丢失

    起因 最近在尝试使用 Element Plus 写一些简单的页面 跟着官方文档走配置了自动按需引入 npm install D unplugin vue components unplugin auto import vite config
  • vue3使用import.meta.env在vite.config.ts下使用env环境变量的方法

    vue3使用import meta env在vite config ts下使用env环境变量的方法 编程一枚的博客 CSDN博客
  • 值得收藏的UmiJS 教程

    点击上方关注 前端技术江湖 一起学习 天天进步 前言 网上的umi教程是真的少 很多人都只写了一点点 很多水文 所以打算自己写一篇 自己搭建umi 并封装了一下常用的功能 并用到公司实际项目中 umi介绍 Umi 是什么 Umi 中文可发音
  • Vue中的import from

    Vue中的import from 大家都知道 import from 是用来引入一些文件的 在vue中 可能有 js文件 json文件 vue文件 在JS和JSON文件引入的时候 往往需要写入一些 例如数组 export const a 例
  • vue 表格表头内容居中

    放入
  • vue 子父组件间的那些事儿——搭建项目(一)

    一 搭建vue项目 1 环境准备 基于nodejs vue cli cnpm 搭建vue项目 由于本博主已经具备以上环境 现在直接进行项目搭建 环境准备可参考这篇博客 https blog csdn net xcymorningsun ar
  • vue动态绑定video视频src问题解决

    做个项目 视频部分需要先后台上传 然后前端页面显示 然后就遇到了视频动态获取地址的问题 一开始想着很简单 使用v model双向绑定就行了 结果试了下并不行 后面开始度娘 尝试过很多人说的 refs解决 结果并不行 虽然浏览器中看地址确实绑
  • Vue项目的部署(服务器)

    Vue项目的部署 服务器 前几天帮朋友写了一个可以动态查看地点温度的前端项目 目前已经部署上线了 访问链接点这里 服务器是朋友的 倒时候打不开会很正常 说不定又使用服务器玩大数据项目去了 效果图 图一 图二 当然 温度也都是实时跟新的 而且
  • 基于SpringCloud的分布式网上购物商城

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端 SpringCloud 前端 Vue HTML 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是
  • Vue出现弹出层时,禁止底部页面跟随滑动

    背景 最近在写一个vue项目 当出现弹出层时 发现底部页面跟随滚动 但是产品不想要这种效果 于是找各种资料 发现很多说法 但是试了试 发现有的根本就不行 比如说有人提出用vue中提供的 touchmove prevent方法来解决 但是我试
  • 前端的工程化、模块化和组件化

    什么是工程化 工程化是一种思想而不是某种特定的技术 当然我们在实现项目工程化的过程中 我们也会去使用一些技术 前端工程化是使用软件工程的技术和方法来对前端的开发流程 技术 工具等进行规范化 标准化 其主要目的为了提高效率和降低成本 即提高开
  • 滚动条样式

    一 在div中的滚动条样式 div webkit scrollbar width 5px 滚动条宽度 div webkit scrollbar thumb border radius 10px 滚动条圆角 webkit box shadow
  • 快速入手 vue3 defindeModel 双向绑定数据,赶快了解下

    彩蛋 在vue3 3x 版本中 官方 RFC 放出了 一个新特性 defineModel 它将让我们在自定义组件上双向绑定数据更加快捷 举个 以前我们父子组件双向数据绑定要在子组件里声明对应的props emts computed 子组件
  • Vue学习之watch侦听器:案例实现翻译功能

    watch侦听器 作用 监视数据的变化 当数据发生变化时 执行一些业务逻辑或者是异步操作 执行的场景例如在线翻译 当文本区域的内容发生变化时 会发生翻译内容的同时更新 语法 简单的写法 简单数据类型 可以直接的进行监听 完整的写法 添加额外
  • 基于vue2+海康威视web开发包3.2 无插件版本开发的监控系统

    文章目录 前言 一 插件准备 二 使用步骤 前言 项目最终效果为 可以预览 并且可以使用云台控制 购买的海康威视摄像头必须可以开启websocket 一 插件准备 插件下载地址 下载WEB无插件开发包V3 2 并加入到vue项目中 下载后解
  • [黑马程序员TypeScript笔记]------一篇就够了

    文章目录 1 TypeScript 介绍 TypeScript 是什么 TypeScript 为什么要为 JS 添加类型支持 TypeScript 相比 JS 的优势 2 TypeScript 初体验 安装编译 TS 的工具包
  • 【vue】$bus 跨组件调用方法

    1 新建bus js import Vue from vue 使用 Event Bus const bus new Vue export default bus 2 main js引用 import bus from libs bus Vu
  • 拓展:vue 父组件调用子组件方法ref(且父组件可通过ref调用的方法传值给子组件)

    1 ref被用来给元素或子组件注册引用信息 引用信息将会注册在父组件的 refs对象上 一 ref被用来给元素或子组件注册引用信息 引用信息将会注册在父组件的 refs对象上 div class formBtn fl 111 div div
  • vue项目日期处理day.js

    dayjs安装 1 npm 安装 npm install dayjs save 2 项目使用 import dayjs from dayjs ES 2015 dayjs format 使用介绍 1 秒 获取或设置秒 接受0到59的数字 如果
  • ❤ Vue3 使用

    Vue3 使用 Vue3之toRefs的使用 作用 toRefs 可以将一个响应式的对象 转换成普通对象 但是转换后的普通对象的每一个属性值都是响应式的 这样我们可以使用es6的对象解构或者三点运算符等操作 代码

随机推荐

  • LLVM里的寄存器分配 - 线性扫描算法(二)

    1 背景介绍 在上一篇博文 LLVM 里的寄存器分配 准备工作 一 里 我主要整理了 LLVM 在做寄存器分配前所做的准备工作 介绍了 LLVM 是在怎样的 MIR 上做的寄存器分配 接下来 就需要讲讲 LLVM 是如何做寄存器分配了 虽然
  • 对比加速CDN,高防CDN有什么优势呢

    与加速的CDN相比 高防CDN优势可以归纳为 自动化 引导式自助 错误冲突及时提醒 操作高效便捷 配置项丰富 自动配置缓存策略 多业务支持 支持网页 下载 点播等多种业务类型 满足用户多元化业务需求 可谓是大文件 小文件 点播 直播 动静皆
  • React中的state管理

    实现如上的点击变色 父组件 class StarRating extends React Component constructor props super props this state starsSelected props star
  • 2013一些好的句子

    1 能医不自医 2 万般皆是命 半点不由人 3 养儿一百岁 长忧九十九
  • 如何注册 Docker hub

    Docker hub 是什么 Docker Hub 是 Docker 社区分享 Docker 镜像的网站 存储库 上面有很多 Docker 镜像 例如 nginx 官方镜像 你可以从Docker Hub上下载这些镜像 也可以在上面分享你自己
  • 比默认的 Python shell 好太多,IPython 实用小技巧合集

    导语 IPython 是一个 Python的交互式shell 比默认的 Python shell好用得多 它有许多好用的特性 本文将对一些特性进行介绍 介绍 IPython 是一个Python的交互式shell 比默认的 Python sh
  • 如何吃透csapp

    读薄 读厚csapp 非常不错的博客 既有对书本内容的理解 也有对实验内容的剖析 当然我还没看 先马 并且立个flag 必看完csapp 看完奖励自己一趟旅行 EOF 补充 本书的使用指南
  • 程序员常用九大算法(二分查找(非递归)、分治、动态规划、KMP、贪心、普里姆、克鲁斯卡尔、迪杰斯特拉、弗洛伊德算法)

    程序员常用九大算法 1 二分查找 非递归 2 分治算法 3 动态规划算法 4 KMP算法 5 贪心算法 6 普里姆算法 7 克鲁斯卡尔算法 8 迪杰斯特拉算法 9 弗洛伊德算法 1 二分查找 非递归 就是不使用递归的二分查找 这里不做介绍
  • 机器学习(1):独立同分布IID(independent and identically distributed)

    1 独立同分布independent and identically distributed i i d 在概率统计理论中 如果变量序列或者其他随机变量有相同的概率分布 并且互相独立 那么这些随机变量是独立同分布 在西瓜书中解释是 输入空间
  • 程序员的浪漫——欲寄彩笺兼尺素,山长水阔知何处

    欲寄彩笺兼尺素 山长水阔知何处 每当提及程序员 人们往往想到的是带着眼镜 不修边幅 面对电脑 两眼无光的窘态 然事实上每个热爱编程的人 内心深处都藏有一处不为人知充满着浪漫色彩与幻想气息的地方 而这个地方也只为一个人开放 每个热爱编程的程序
  • 在win10环境下的vscode中使用xdebug进行PHP断点调试

    第一步 下载VScode和phpstudy 具体下载网址我放到下面 VScode Visual Studio Code Code Editing RedefinedVisual Studio Code Code Editing Redefi
  • 深入浅出讲解:php的socket通信

    对TCP IP UDP Socket编程这些词你不会很陌生吧 随着网络技术的发展 这些词充斥着我们的耳朵 那么我想问 1 什么是TCP IP UDP 2 Socket在哪里呢 3 Socket是什么呢 4 你会使用它们吗 什么是TCP IP
  • mysql8坑太多_使用mysql8时遇到的一些坑

    1 时区问题 往数据库插入datetime类型的时间发现 数据库里存储的比实际晚13个小时 而服务器的时间是东八区没问题 解决方法 连接数据库url中加上serverTimezone GMT 2b8 2 java sql SQLExcept
  • Memcached 未授权访问漏洞验证

    Memcached 是一个高性能的分布式内存对象缓存系统 用于动态Web应用以减轻数据库负载 该服务的端号为 11211 使用绿盟漏洞扫描系统发现某服务器存在Memcached 未授权访问漏洞 如下图所示 验证方法一 使用nmap 脚本sc
  • 使用Gson解析复杂的json数据

    http blog csdn net tkwxty article details 34474501
  • [python学习] 简单爬取图片网站图库中图片

    最近老师让学习Python与维基百科相关的知识 无聊之中用Python简单做了个爬取 游讯网图库 中的图片 因为每次点击下一张感觉非常浪费时间又繁琐 主要分享的是如何爬取HTML的知识和Python如何下载图片 希望对大家有所帮助 同时发现
  • Unity 世界坐标转UI坐标

    一 Unity中有四种坐标系 1 World Space 世界坐标 三维空间坐标 浮点数 2 Screen Space 屏幕坐标 以像素来定义的 以屏幕的左下角为 0 0 点 右上角为 Screen width Screen height
  • cramfs文件系统制作

    参考 http blog csdn net liukun321 article details 7256456 1 首先配置内核 打开对cramfs的支持 File systems gt Miscellaneous filesystems
  • win10 安装svn遇到2503错误的解决办法

    win10安装 svn visualsvn ankhsvn 遇到2503错误 解决办法 以管理员身份打开cmd 输入命令 C windows system32 gt msiexec package D 软件 8 SVN AnkhSvn 2
  • vue 自定义组件切换时刷新

    我们在使用vue自定义组件时 常常会遇到切换组件的操作 但是切换组件的时候 如果没有处理好 组件内容就不会刷新 如 标签页下放自定义组件 切换标签时 组件里面的内容不刷新 导致页面停留在上一次的操作 那么我们应该如何来解决这个问题呢 接下来