Vue는 사용자 인터페이스 구축을 위한 진보적인 프레임워크이며 점점 더 많은 개발자가 프로젝트에서 프런트 엔드 인터페이스를 개발하는 데 이를 사용하기 시작하고 있습니다. Vue를 사용하는 과정에서 때때로 스타일 깜박임 문제에 직면하게 됩니다. 이 글에서는 Vue에서 v-cloak을 사용하여 이 문제를 해결하는 방법을 소개합니다.
Vue가 컴포넌트를 렌더링할 때 템플릿에서 Vue 데이터 바인딩이 사용될 때 데이터가 먼저 구문 분석된 다음 데이터 변경으로 인한 차이가 DOM에 업데이트됩니다. 이 프로세스는 일정 시간이 소요되며, 특히 데이터가 복잡하거나 DOM 노드가 많은 경우 페이지가 로드될 때 구성 요소가 렌더링될 때 간단한 스타일 변경이 발생합니다. 이러한 상황을 스타일 질문이라고 합니다.
다음 두 가지 구현이 각각 소개됩니다.
Vue 구성 요소에서 스타일 속성을 통해 표시 속성을 없음으로 설정한 다음 마운트된( ) 수명주기. Vue 구성 요소가 렌더링된 후 모든 CSS가 로드되어 구성 요소의 DOM이 처음 로드될 때까지 숨겨집니다.
<template> <div class="container" v-cloak>隐藏结果</div> </template> <style> [v-cloak] { display: none; } </style>
<script> export default { mounted () { this.$nextTick(() => { this.show = true }) } } </script>
이 방법은 비교적 간단하고 간단한 페이지에 적합합니다. 그러나 페이지가 복잡하거나 일부 비동기 데이터를 로드해야 하는 경우 이 방법은 적합하지 않을 수 있습니다. 그런 다음 v-cloak을 사용하여 구현하는 것을 고려할 수 있습니다.
v-cloak은 Vue에서 제공하는 지시문 중 하나로, 컴파일되지 않은 Mustache 구문을 숨기는 데 사용할 수 있습니다. v-cloak 요소와 그 하위 요소는 Mustache 구문이 실제 값으로 구문 분석될 때까지 display:none으로 유지됩니다. Vue 컴파일러가 준비되면 v-cloak 요소가 제거됩니다.
<template> <div class="container" v-cloak>显示结果</div> </template> <style> [v-cloak] { display: none; } </style>
<script> export default { mounted () { this.$nextTick(() => { this.show = true }) } } </script>
구성요소에서 [v-cloak] 지시문을 사용하여 숨기기를 제어하고,