찾다
웹 프론트엔드JS 튜토리얼Vue 렌더링 시 {{}} 깜박임을 처리하는 방법

이번에는 vue 렌더링 시 {{}} 깜박임을 처리하는 방법과 vue 렌더링 시 {{}} 깜박임을 처리할 때 어떤 주의사항이 있는지 보여드리겠습니다. 다음은 실제 사례입니다.

v-if와 v-show는 일상적인 개발에서 가장 일반적으로 사용되는 두 가지 명령일 수 있습니다. 비슷한 기능을 가지고 있는 것처럼 보이지만 둘 사이에는 여전히 큰 차이점이 있습니다.

v-if와 v-show의 차이점:

v-if 블록을 전환할 때 Vue.js에는 부분 컴파일/제거 프로세스가 있습니다. v-if의 템플릿에 data도 포함될 수 있기 때문입니다. 바인딩 또는 하위 구성 요소를 정의합니다. v-if는 조건부 블록 내의 이벤트 리스너와 하위 구성 요소가 스위치 간에 적절하게 삭제되고 다시 작성되도록 보장하기 때문에 진정한 조건부 렌더링입니다.

v-if도 게으릅니다. 초기 렌더링에서 조건이 false이면 아무 작업도 수행되지 않습니다. 조건이 처음으로 true가 될 때만 로컬 컴파일이 시작됩니다(컴파일이 캐시됨).

이에 비해 v-show는 훨씬 간단합니다. 요소는 항상 컴파일되고 유지되며 CSS를 기반으로 간단히 전환됩니다.

간단히 말하면 둘 사이의 가장 큰 차이점은 v-if는 조건이 충족될 때만 컴파일되는 반면, v-show는 조건 충족 여부에 관계없이 항상 컴파일된다는 점입니다. CSS 표시 속성을 간단히 전환하는 것입니다.

적용 가능한 시나리오:

둘 사이의 본질적인 차이점을 이해한 후에는 v-if를 사용하는 방법과 v-show를 사용하는 경우가 더 쉬워집니다.

일반적으로 v-if는 전환 비용이 더 높고, v-show는 초기 렌더링 비용이 더 높습니다. 따라서 자주 전환해야 하는 경우에는 v-show가 더 좋고, 런타임 시 조건이 변경될 가능성이 없을 경우에는 v-if가 더 좋습니다.

예를 들어, 이제 많은 페이지가 다양한 터미널에서 다르게 작동합니다. 가장 일반적인 점은 많은 앱 페이지가 WeChat에서 열릴 때 다운로드 프롬프트를 표시하지만 이 경우 모든 사람의 터미널 상태입니다. 결정되어 로딩 시 변경되지 않으므로 다운로드한 부분이 APP에서 열릴 때 컴파일되지 않도록 v-if를 사용하는 것이 적합합니다.

기본적으로 두 상태를 자주 전환해야 하기 때문에 페이지의 요소를 다양한 조건에 따라 표시/숨기기 등의 장소에서 사용하는 것이 가장 적합합니다. 위에서 언급한 것처럼 v-show 전환 소모량이 적기 때문입니다. v-if보다

여러 조건

코드에 여러 조건부 판단이 필요한 경우가 많지만 vue에는 v-if와 v-else만 있고 v-elseif와 같은 명령어는 없습니다. 유사한 지침은 없지만 이 문제를 해결하는 방법은 여전히 ​​여러 가지가 있습니다.

방법 1: 템플릿

<p></p>
<template>
<p></p>
<p></p>
</template>

방법 2: 부분

요소는 등록된 부분 슬롯으로 부분 삽입 시 Vue에서 컴파일됩니다. 요소 자체가 교체됩니다. 요소는 name 속성을 지정해야 합니다.

이것은 javaScript의 기본 조각 요소를 연상시키지만 동일한 것은 아닙니다. Partial은 정적(Static) 부분과 동적(Dynamic) 부분으로 나뉘는데, 위의 문제를 해결하기 위해서는 동적 부분(Dynamic Partial)을 사용해야 합니다.

예:

// 注册 partial
Vue.partial('my-partial', '<p>This is a partial! {{msg}}</p>')
<!-- 静态 partial -->
<partial></partial>
<!-- 动态 partial -->
<!-- 渲染 partial,id === vm.partialId -->
<partial></partial>

다중 조건 문제를 해결하려면 상황별로 해당 부분을 미리 등록한 다음 부분의 이름 속성을 판단 조건에 바인딩하여 다중 조건 판단을 구현할 수 있습니다.

기타:

1. v-if 지시어는 템플릿 패키징 요소에 적용될 수 있지만 v-show는 템플릿을 지원하지 않습니다.

2 v-show가 우선순위 때문에 컴포넌트에 적용됩니다. v-else에 문제가 있을 수 있습니다. 해결책은 v-else를 다른 v-show로 바꾸는 것입니다.

// 错误
<custom-component></custom-component>
<p>这可能也是一个组件</p>
// 正确做法
<custom-component></custom-component>
<p>这可能也是一个组件</p>

Vue 페이지가 로드되면 숨겨진 요소가 나타납니다. set by v-show가 나타나서 페이지가 깜빡거립니다.

APP 커뮤니티 페이지 작성 시 몇몇 곳에서 v-show를 사용했는데, 페이지를 새로 고칠 때 로직이 거짓으로 판단되는 경우에도, 일부 요소는 표시되어서는 안되며, 그 얼굴이 순간적으로 나타나게 됩니다. 요소가 작으면 괜찮지만, 특히 큰 영역이면 매우 불쾌해 보일 것이므로 인터넷에서 검색해 보았습니다. 해결책이 있다는 것이 밝혀졌습니다.

방법 1: v-cloak

官方的解释就一句话:这个指令保持在元素上直到关联实例结束编译。

 光看这句话一头雾水,后面紧接着说了用法:

和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。

也就是说v-cloak指令可以像CSS选择器一样绑定一套CSS样式然后这套CSS会一直生效到实例编译结束。

 示例代码:

// <p> 不会显示,直到编译结束。
[v-cloak] {
display: none;
}
</p><p>
{{ message }}
</p>

 方法二: v-text

vue中我们会将数据包在两个大括号中,然后放到HTML里,但是在vue内部,所有的双括号会被编译成textNode的一个v-text指令。

 而使用v-text的好处就是永远更好的性能,更重要的是可以避免FOUC (Flash of Uncompiled Content) ,也就是上面与遇到的问题。

示例代码:

<span></span>
<!-- same as -->
<span>{{msg}}</span>

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

怎样使用JS中EL表达式获取上下文参数

如何使用JS实现左边列表平移到右边

위 내용은 Vue 렌더링 시 {{}} 깜박임을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
使用PHP处理PDF文件的方法使用PHP处理PDF文件的方法Jun 19, 2023 pm 02:41 PM

PDF文件作为一种通用的文件格式,被广泛应用于各种应用场景,如电子书、报表、合同等等。在开发过程中,我们常常需要对PDF文件进行生成、编辑、读取等操作。而PHP作为一种脚本语言,也能够轻松地完成这些任务。本文将介绍使用PHP处理PDF文件的方法。一、生成PDF文件生成PDF文件有许多方法,其中最常见的是使用PDF库。PDF库是一种生成PDF文档的工具,它为

如何处理Linux系统中频繁出现的进程资源耗尽问题如何处理Linux系统中频繁出现的进程资源耗尽问题Jun 29, 2023 am 09:58 AM

如何处理Linux系统中频繁出现的进程资源耗尽问题概述:Linux系统下,有时会出现进程资源耗尽的情况,如CPU负载高、内存占用过多等问题。这些问题可能导致系统性能下降,甚至系统崩溃。本文将介绍一些解决进程资源耗尽问题的常见方法。一、定位问题:监测系统资源:使用top、htop等工具监测系统资源的使用情况,包括CPU、内存、磁盘和网络等。查看进程:使用ps命

CakePHP如何处理文件上传?CakePHP如何处理文件上传?Jun 04, 2023 pm 07:21 PM

CakePHP是一个开源的Web应用程序框架,它基于PHP语言构建,可以简化Web应用程序的开发过程。在CakePHP中,处理文件上传是一个常见的需求,无论是上传头像、图片还是文档,都需要在程序中实现相应的功能。本文将介绍CakePHP中如何处理文件上传的方法和一些注意事项。在Controller中处理上传文件在CakePHP中,上传文件的处理通常在Cont

CakePHP如何处理多语言?CakePHP如何处理多语言?Jun 06, 2023 am 08:03 AM

CakePHP是一个流行的PHP开发框架,它可以帮助开发者快速构建高质量的Web应用程序。随着全球化的发展,越来越多的应用需要支持多语言,CakePHP也提供了相应的支持。本文将介绍CakePHP如何处理多语言。一、多语言支持多语言支持是CakePHP的一项重要功能。从版本2.0开始,CakePHP支持gettext文件格式,该

Java错误:JavaFX线程卡顿错误,如何处理和避免Java错误:JavaFX线程卡顿错误,如何处理和避免Jun 24, 2023 pm 05:52 PM

在进行JavaFX应用程序开发的过程中,我们常常会遇到JavaFX线程卡顿错误。这种错误的严重程度不同,可能会对程序的稳定性和性能产生不利的影响。为了保证程序的正常运行,我们需要了解JavaFX线程卡顿错误的原因和解决方法,以及如何预防这种错误的发生。一、JavaFX线程卡顿错误的原因JavaFX是一个多线程的UI应用程序框架,它允许程序在后台线程中执行长时

PHP语言开发中如何检测和处理空值错误?PHP语言开发中如何检测和处理空值错误?Jun 11, 2023 am 10:51 AM

随着现代Web应用不断发展,PHP作为其中最流行的编程语言之一,被广泛地应用于网站开发中。但在开发过程中,经常会遇到空值错误,而这些错误会导致应用程序抛出异常,进而影响用户的使用体验。因此,在PHP开发过程中,如何检测和处理空值错误,是程序员们需要掌握的重要技能。一、什么是空值错误在PHP开发过程中,空值错误通常指的是两种情况:变量未初始化和变

如何构建基于Spring Boot的分布式事务处理如何构建基于Spring Boot的分布式事务处理Jun 23, 2023 am 09:24 AM

在企业级应用程序中,分布式系统已经成为一个常见的架构模型。分布式系统由多个处理单元(节点)组成,这些节点协同工作以完成复杂的任务。在分布式系统中,事务处理是一个必不可少的组件,因为它能够确保所有节点协同工作的结果一致性。本文将介绍如何构建基于SpringBoot的分布式事务处理。一、什么是分布式事务处理?在单节点系统中,事务处理通常是一个简单的过程。当应用

如何使用PHP进行Excel文件处理?如何使用PHP进行Excel文件处理?May 13, 2023 am 08:00 AM

随着Excel文件在商业领域和日常生活中的不断普及和应用,我们经常需要使用PHP处理Excel文件,例如数据的导入导出,数据的筛选和排序等。因此,本文将介绍如何使用PHP进行Excel文件处理。安装PHPExcel库PHPExcel是一款强大的PHP操作Excel文件的开源库,其支持读取、写入Excel文件,并提供了许多便捷的操作方法。在使用之前需要先安装P

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전