首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vue的缓存组件 | 详解KeepAlive

;那么只执行到i(vnode,false),后面的逻辑不执行; 2、再次访问被包裹组件时,vnode.componentInstance的值就是已经缓存的组件实例,那么会执行insert(parentElm...当我们点击增加或减少按钮时,Counter 组件的 count 属性会发生变化,但由于它被包裹在 keep-alive 组件中,所以实际上并没有被销毁。...例如,我们可以修改上面的例子,将 Counter 组件和另一个文本组件 Text 都缓存起来 div> 如何刷新 当使用 keep-alive 组件缓存一个组件时,如果需要在组件被缓存时执行一些操作,可以使用 activated 钩子函数,在组件被激活(被缓存并且被展示)时触发...在被缓存的组件中,可以将这个方法绑定到一个按钮上,当按钮被点击时,被缓存的组件会强制重新渲染。 需要注意的是,使用 this.

66810

对话框、模态框和弹出框看起来很相似,它们有何不同?

轻度关闭 vs 显式关闭 需要考虑的另一个方面是用户如何关闭组件,以及是否受到其他元素的影响:这可以分为显式关闭和轻度关闭。...当内容可以折叠时,键盘用户应该能够使用与鼠标用户点击折叠内容的按钮相同的按钮。 主要模式 让我们看看一些常见的模式以及如何区分它们。...例子 当您没有与在线银行环境进行交互长达 10 分钟时,一个警告对话框将显示,并告诉您将在 5 分钟内退出登录,除非你点击“继续我的会话”按钮。...它们共同点是它们由两个部分组成:一个是触发器元素,另一个是被触发的元素。 披露组件不会捕获焦点,没有背景,也不是模态的。它们通常使用触发器或特定的关闭按钮进行关闭或折叠。...定义弹出窗口 您正在构建一个可切换提示符,用于在内容中显示复杂单词的定义。当定义图标被点击时,它会打开。您的用户可能想滚动到其他地方、阅读其他内容或执行其他操作。最好保持这种模式为非模态。

4K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    最常见的 20 个 jQuery 面试问题及答案

    你甚至可以将一个选择器字符串传入   2. 网页上有 5 个 div> 元素,如何使用 jQuery来选择它们?(答案)   另一个重要的 jQuery 问题是基于选择器的。...如何在点击一个按钮时使用 jQuery 隐藏一个图片?   这是一个事件处理问题。jQuery为按钮点击之类的事件提供了很好的支持。你可以通过以下代码去隐藏一个通过ID或class定位到的图片。...ready() 函数用于在文档进入ready状态时执行代码。当DOM 完全加载(例如HTML被完全解析DOM树构建完成时),jQuery允许你执行代码。...如何在点击一个按钮时使用 jQuery 隐藏一个图片?   这是一个事件处理问题。jQuery为按钮点击之类的事件提供了很好的支持。你可以通过以下代码去隐藏一个通过ID或class定位到的图片。...ready() 函数用于在文档进入ready状态时执行代码。当DOM 完全加载(例如HTML被完全解析DOM树构建完成时),jQuery允许你执行代码。

    13.8K30

    jquery面试题目_高并发面试题

    你甚至可以将一个选择器字符串传入 2. 网页上有 5 个 div> 元素,如何使用 jQuery来选择它们?(答案) 另一个重要的 jQuery 问题是基于选择器的。...如何在点击一个按钮时使用 jQuery 隐藏一个图片? 这是一个事件处理问题。jQuery为按钮点击之类的事件提供了很好的支持。你可以通过以下代码去隐藏一个通过ID或class定位到的图片。...ready() 函数用于在文档进入ready状态时执行代码。当DOM 完全加载(例如HTML被完全解析DOM树构建完成时),jQuery允许你执行代码。...因此今时今日,许多公共的网站都将jQuery用于用户交互和动画, 如果浏览器已经有了下载好的jQuery库,网站就能有非常好的展示机会。 17....ajax() 方法更强大,更具可配置性, 让你可以指定等待多久,以及如何处理错误。get() 方法是一个只获取一些数据的专门化方法。 18. jQuery 中的方法链是什么?使用方法链有什么好处?

    9.4K10

    JavaScript 编程精解 中文第三版 十五、处理事件

    addEventListener方法允许您添加任意数量的处理器,因此即使元素上已经存在另一个处理器,添加处理器也是安全的。...该方法有时很实用,例如,你将一个按钮放在另一个可点击元素中,但你不希望点击该按钮会激活外部元素的点击行为。 下面的示例代码将mousedown处理器注册到按钮和其外部的段落节点上。...在按钮上点击鼠标右键,按钮的处理器会调用stopPropagation,调度段落上的事件处理器执行。当点击鼠标其他键时,两个处理器都会执行。...例如,如果我在一个段落上按下鼠标,移动到另一个段落上释放鼠标,"click"事件会发生在包含这两个段落的元素上。...或pageX和pageY,它们相对于整个文档的左上角(当窗口被滚动时可能不同)。 下面的代码实现了简单的绘图程序。每次点击文档时,会在鼠标指针下添加一个点。

    5.6K20

    探究React的渲染

    那么,到底React在什么时候重新渲染一个部件?像上面公式所示,当s变化的时候,f被激活。 React什么时候重新渲染(re-rendering) 触发React部件重新渲染的唯一条件是状态的改变。...当事件处理函数(event handler)被激活,函数会访问部件的属性(props)和状态(state),这些属性和状态都已经被保存在快照里的。...但在看了上一个例子后,可能会有一个问题。当按钮被点击,计数器组件会重新渲染多少次?直觉可能是,React会对它遇到的每个更新器函数进行重新渲染,所以在例子中是3次。...第三次点击按钮时,用户界面将显示3,8,控制台将显示{linear:2,exponential:4 },应用程序组件将重新渲染三次。 这个例子展示了React如何重新渲染的另一个有趣的方面。...要知道,我们不能只是假设一个组件只在其props改变时才重新渲染。

    17930

    BuildAdmin16:边栏隐藏、页面全屏,我用vue是如何实现的

    el-aside中v-if条件,瑟吉欧对navTabs中的tabFullScreen进行了取反,当tabFullScreen为true时,aside就为false被隐藏。...如图,取消全屏是一个居中的位置可变的按钮,鼠标放到上面和离开时,会以浏览器窗口为参照进行位置改变。...同时这个div绑定了一个点击事件onCloseFullScreen,即点击这个取消全屏按钮会发生什么,当然是取消全屏了,就是将tabFullScreen设置为false就行了。...close-full-screen-on 第三个div(.close-full-screen-on),刚开始看代码的时候,我没明白这个div是干什么的,后来在自己实现这一块代码时,才恍然大悟这个div是用来增加...引入组件 最后就是在layouts/index.vue中引入取消全屏按钮组件。 使用v-if,当tabFullScree为true全屏时,这个取消全屏按钮组件才会显示。

    73000

    如何使用纯 CSS 制作四子连珠游戏

    当它们都没有被选中时,圆孔就被认为是空的,当其中一个被选中时,相应的玩家就会把他的圆盘放进去。 当其中任何一个被选中之后,应该把它隐藏起来,避免出现两者都被选中的状态。...即使可以,当再次点击复选框时,它也会转换成选中状态。强迫第二个玩家在移动圆盘时进行双击是不现实的。...尽管已经设置了所有的控件,但只有红色的圆盘可以落在游戏板上。 我用彩色且半透明的矩形对 Radio input 的可点击区域用进行了可视化显示。...轮流游戏 我只有一个模糊的想法,就是能不能使用普通的兄弟选择器解决玩家轮流游戏的问题。这个想法就是统计选中的 input 的数量,为偶数(0、2、4等)时红色玩家移动,为奇数时黄色玩家移动。...我的想法是将一个玩家(黄色)的单选按钮连接到左边,并将另一个玩家(红色)的单选按钮连接到共享父容器的右边。

    2K20

    关于 React 的 keep-alive 功能都在这里了(上)

    二、核心原理、 先赘述一下前提, react的虚拟dom结构是一棵树, 这棵树的某个节点被移除会导致所有子节点也被销毁 所以写代码时才需要用 Memo进行包裹。...(记住这张图) image.png 比如我想缓存"B2组件"的状态, 那其实要做的就是让"B组件"被销毁时 "B2组件不被销毁", 从图上可知当"B组件"被销毁时"A组件"是不会被销毁的, 因为"A组件...useState 定义了一个变量叫 'n' , 当 'n' 变化时触发的dom变化也都已经被react记录, 所以不会影响每次进行dom diff 后的元素操作。...大家可以想想这样一个场景, 用户点击了table的第三条数据的编辑按钮跳转到编辑页面, 编辑后返回列表页, 此时可能需要我们更新一下列表里第三条的状态, 此时就需要知道哪些组件被激活了。...还有一种情况如下图所示, 这是一种鼠标悬停会出现tip提示语, 如果此时点击按钮发生跳转页面会导致, 当你返回列表页面时这个tip竟然还在....

    5K20

    前端面试模拟:常见的3个JavaScript经典考题

    第一问:如何使用JavaScript实现事件委托? 面试官微微一笑,开门见山地抛出了第一个问题:“假设你有一个包含多个按钮的父元素,如何通过事件委托来高效地管理这些按钮的点击事件?”...实现步骤 接下来,面试官展示了一个简单的HTML结构,其中包含一个div元素作为父容器,内部有三个按钮。你的任务是在这个div元素上使用事件委托来处理所有按钮的点击事件。...这样,当任意按钮被点击时,事件都会冒泡到buttonContainer,并触发这个监听器。 判断目标元素:在事件处理函数中,通过event.target.tagName判断实际点击的元素是否为按钮。...如果是按钮,我们通过alert显示被点击按钮的文本内容。 面试官显然对你的解释感到满意,并请你运行代码展示实际效果。你自信地展示了点击任意按钮时弹出相应提示框的效果。...最终,location对应的值覆盖了person的值,data对象只保留了一个键值对。 如何解决这个问题? 面试官可能会问:“既然对象不能直接作为另一个对象的键,那如何才能避免这个问题?”

    11010

    西门子PLC故障安全功能-TWO_H_EN

    您还需要一个使能信号才能使双手按下功能正常工作,此使能信号可以是安全信号,如急停或安全门,也可以是正常连锁信号,如待处理部件的存在,或者它可以是两者的组合。...如果按钮 1 和按钮 2 在称为差异时间的允许时间内被激活。根据 DISCTIME ≤ 500 ms,当 ENABLE = 1 时,输出信号将设置为 1。...一旦其中一个按钮松开或使能信号不再可用,机器将立即停止,ENABLE = 0。仅当另一个按钮已松开时,并且两个按钮在现有 ENABLE = 1 的差异时间内重新激活,才能将使能信号 Q 重置为 1。...仅当释放另一个按钮并在差异时间内重新激活两个按钮时,同时 ENABLE = 1 时,才将使能信号 Q 复位为 1。 DIAG 输出将提供有关错误的非故障安全信息,用于检修。...在 ENABLE=1 时,双手启动信号"DB".hand1 为 0 或"DB".hand2 为 0,表明一只手或两只手离开按钮(一只或两只手不在安全区域),故输出 Q 为 0。

    29930

    优秀组件设计的关键:自私原则

    在开发新功能时,是什么决定了现有组件是否可行?当一个组件不能使用时,这究竟意味着什么? 该组件在功能上是否没有做它所期望的事情,比如一个标签系统没有切换到正确的面板?...当组件对它所显示的内容负责时,它需要一个能适应所有内容变化的API。最终,这个API将被打破,因为内容将永远永远地改变。 介绍一下团队中的我#。 在所有团队运动中都有一句格言:"团队中没有'我'"。...按钮如何通过体现 "团队中的M-E "的态度来避免这种限制? 我,我自己,还有UI 当组件对它所显示的内容负责时,它就会崩溃,因为内容将永远永远地改变。...就Button而言,如果在其内容的某个地方有另一个点击事件,那是内容的问题。按钮并不关心。 我的下一站是什么时候,在哪里? 任何喷射性的旅行者都会很快谈论他们的下一个目的地。...当回顾我们的Button组件的演变时,也许自私的设计的关键是有意义的。然而,让我们再把它们应用到另一个普遍存在问题的组件--模态。 对于这个例子,我们在三个不同的模态布局中得到了预见性的好处。

    1.8K30

    BuildAdmin09:tab的关闭,让滑动块何去何从

    前言 之前的两篇文章,一篇实现了tab页的新增,一个讲了如何实现滑动块,本篇就来讲一下如何实现tab的关闭,以及tab关闭时滑动块的变换情况。...关闭tab 关闭tab主要从两个方面实现: 定义关闭tab方法 触发滑动块位置的修改 绑定点击事件 tab主要分为两个部分,左边的名称和右边的关闭按钮,我们这里给关闭按钮绑定一个点击事件。...这时我想点击子元素触发子元素的点击事件,但实际上会先触发子组件的A事件,然后触发父组件的B事件。 在这里B事件代表的就是:点击tab跳转页面事件。...2, 关闭非激活tab 当关闭非激活的tab时,滑动块位置会发生变化,但还是修饰之前的activeRoute。 这个在closeTab中是如何实现的呢?...结语 这就是我整理的关于tab关闭的一个思路,关键是捋清tab关闭时的两种情况,这样实现起来就比较容易,同时在功能开发的过程中,遇到了不少新的问题,同样也学到了新的知识。

    22300

    使用React Hooks 时要避免的5个错误!

    上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。 最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了。...当按钮被点击时,React调用setCount(count + 1) 3次 const handleClick = () { increase(); increase(); increase...之后,当按钮被单击并且count增加时,setInterval取到的 count 值仍然是从初始渲染中捕获count为0的值。log 函数是一个过时的闭包,因为它捕获了一个过时的状态变量count。...当按钮被点击时,计数器每秒钟延迟增加1: function DelayedIncreaser() { const [count, setCount] = useState(0); const [...,点击开始按钮。正如预期的那样,状态变量count每秒钟都会增加。 在进行递增操作时,单击umount 按钮,卸载组件。React会在控制台中警告更新卸载组件的状态。 ?

    4.3K30

    如何不用一行 JS 代码做一个现代化可交互网站

    可以看到点击这个导航栏按钮,按钮上的 3 条杠会变成一个关闭图形,并且有一个很酷的导航展开动画,从导航按钮开始展开一个圆,然后出现导航菜单,鼠标放到导航菜单项上面还有很炫的 Hover 效果,最后再次点击导航按钮...要知道这整个导航栏效果是完全没有一行 JS 代码的,完全只使用 HTML+CSS 来实现。接下来让我们看一看它是如何被实现的。 首先来看一下整个导航栏的 HTML 代码,如下所示。...&__button:hover &__icon::before { top: -1rem; } &__button:hover &__icon::after { top: 1rem; } 当点击这个按钮时...,被导航按钮覆盖(按钮 z-index 为 2000),当点击按钮时,也就是 checkbox 被选中时,这个小圆形会被放大 80 倍,这样我们就可以看到背景展开的效果,相关代码如下。...这里的模态框交互就是利用的这个 ID,CSS 中有个 :target 伪类,表示当元素的 ID 与 URL 的 hash 相等时激活。

    1.7K10

    第123天:移动web开发中的常见问题

    以下支持winphone 8: MSPointerDown——当手指触碰屏幕时候发生。不管当前有多少只手指。 MSPointerMove——当手指在屏幕上滑动时连续触发。...在做移动端页面时,会发现所有a标签在触发点击时或者所有设置了伪类:active的元素,默认都会在激活状态时,显示高亮框,如果不想要这个高亮,那么你可以通过css以下方法来进行全局的禁止: html {...对于此类问题还有个办法,不使用a或者input标签,直接用div标签。 winphone系统a、input标签被点击时产生的半透明灰色背景怎么去掉?...,PC端的该属性已经被移除,该属性在移动端要生效,必须设置meta viewport。...移动端触摸按钮的效果,可明示用户有些事情正要发生,是一个比较好体验,但是移动设备中并没有鼠标指针,使用css的hover并不能满足我们的需求,还好国外有个激活css的active效果,代码如下: <html

    1.5K20

    React组件内事件传参 实现tab切换

    是不带参数的, 不带参数的写法: 如onClick= { actionItem } 带参数的写法, onClick = { this.activateButton.bind(this, 0) } 下面是一个向组件内函数传递参数的小例子...需求: 在页面的底部, 有四个按钮, 负责切换内容, 当按钮被点击时, 变为激活状态, 其余按钮恢复到未激活状态 分析: 我们首先要创建点击事件的处理函数, 当按钮被点击时, 将按钮的id作为参数发送给处理函数..., 处理函数激活对应当前id的按钮, 并将其余三个按钮调整到未激活状态 实现: 用组件state创建一个含有四个元素的一维数组, 四个元素默认为零, 但界面中某个按钮被点击时, 组件内处理函数将一维数组内对应元素变为...this.activateButton = this.activateButton.bind(this); } // 根据参数id, 来确定激活四个...item中的哪一个 activateButton(id) { let tmpMarkArray = [0, 0, 0, 0] tmpMarkArray

    1.3K50

    按钮样式的正确方式

    悬停(hover),焦点(focus)和活动(active)样式 很酷,你的按钮看起来不错,但是...用户将与它进行交互,并且当按钮的状态改变时,他们需要视觉反馈。...让我们从以下主题开始:活动状态,即按钮或者链接被点击: /* old-school "down" effect on clic + color tweak */ .btn:active { transform...处理focus样式 还有一个棘手的问题。 在多个浏览器中,当您单击链接或按钮时,将应用两个伪类: :active :focus 一旦停止按下鼠标按钮或触控板,“active”伪类就会停止应用。...但在某些浏览器中,focus样式会一直保留,直到用户点击页面上的其他内容为止。 在我的测试中,受影响的浏览器包括Chrome(66),Edge(16)和Firefox(60,仅用于链接)。...它在整个页面上运行,并且仅在使用键盘时才将焦点可见的类设置为接收焦点的元素。

    3.7K20

    做了七年前端开发,我最近才意识到可访问性的必要......

    考虑一个没有 h1 页面的场景,当屏幕阅读器读到这样的页面时,用户是无法获知标题的,而页面的标题通常是用表示。...—— 对于屏幕阅读器) 4 可访问图标按钮 首先,在设计中有按钮时,应使用元素,不要使用div>等其他元素,再将样式设置为按钮的样子,我知道我们这样做已经很久了,但是时候改变了。...同理,想象一下用 Siri 浏览网页: 假设有一个按钮叫“发送”,我们可以说:”Hey Siri,点击发送按钮”。这很简单,对吧?...但是如果按钮只有一个图标,而没有“发送”标签,你要如何告诉 Siri 点击哪个按钮呢? 因此,尽可能提供视觉标签,如果不行,那至少让它可通过 tab 使用。...可访问性就像是一片海洋,我只触及了表面。希望通过本文,能够为我们大多数人照亮一个潜在的黑暗区域。 我所写的一切都基于 Sara Soueidan 的博客和谈话,请访问她的博客了解更多信息。

    1.7K30
    领券