> 웹 프론트엔드 > 프런트엔드 Q&A > Vue의 HTML에서 클릭 이벤트를 탈출하는 방법

Vue의 HTML에서 클릭 이벤트를 탈출하는 방법

WBOY
풀어 주다: 2023-05-08 09:47:07
원래의
627명이 탐색했습니다.

Vue에서는 일반적으로 클릭 이벤트를 바인딩하기 위해 v-on 지시문을 사용합니다. 예:

<button v-on:click="handleClick">点击我</button>
로그인 후 복사

이 코드는 이 버튼을 클릭하면 handlerClick이라는 메서드가 실행된다는 것을 나타냅니다.

그러나 어떤 경우에는 미만 기호(<) 또는 비교 기호(&)와 같이 HTML에서 특별한 의미를 갖는 일부 문자를 표시해야 합니다. 이러한 문자는 브라우저에서 HTML 태그나 엔터티로 해석되어 표시 문제를 일으킬 수 있습니다.

이를 방지하려면 이러한 문자를 이스케이프 처리해야 합니다. Vue는 이 기능을 수행하기 위한 내장 방법인 v-html 지시문을 제공합니다.

v-html 지시문을 사용하면 HTML 코드를 HTML 요소로 렌더링할 수 있습니다. 예:

<div v-html="htmlCode"></div></p>
<p>이 코드는 htmlCode 변수에 저장된 HTML 코드를 div 요소로 렌더링하는 것을 의미합니다. </p>
<p>그러나 v-html 지시문을 사용할 때 Vue는 기본적으로 보안 문제로 인해 여기에 포함된 JavaScript 코드 또는 이벤트 바인딩 렌더링을 금지합니다. 이는 XSS 공격이 발생하는 것을 방지하기 위한 것입니다. </p>
<p>JavaScript 코드를 사용하거나 HTML에서 이벤트를 바인딩해야 하는 경우 Vue가 콘텐츠를 컴파일하지 않도록 Vue에서 제공하는 또 다른 명령을 v-once 사용해야 합니다. </p>
<p>예를 들어 클릭 이벤트가 포함된 버튼을 HTML로 렌더링하려는 경우 다음과 같이 v-html 및 v-once 지시어를 사용할 수 있습니다. </p>
<pre class="brush:php;toolbar:false"><div v-html="`<button v-once v-on:click='${()=>console.log("clicked")}'></button>`"></div>
로그인 후 복사

이 코드는 클릭 이벤트가 포함된 버튼을 HTML로 렌더링하는 것을 나타냅니다.

보안 문제로 인해 특히 렌더링된 콘텐츠가 사용자 입력에서 나오는 경우 HTML 코드에서 직접 JavaScript 코드 및 이벤트 바인딩을 사용하지 않는 것이 좋습니다. 이 경우에는 컴포넌트나 관련 메서드를 사용하는 등 다른 방법으로 로직을 처리하는 것이 좋습니다.

위 내용은 Vue의 HTML에서 클릭 이벤트를 탈출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿