의도적인 연습!!
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vue Basics</title>
<script src="https://unpkg.com/vue@next" defer></script>
<script src="app.js" defer></script>
</head>
<body>
<header>
<h1>Vue Course Goals</h1>
</header>
<section id="user-goal">
<h2 v-html="randomMsg()"></h2>
<a v-bind:href="vueLink">뷰 공식홈페이지 입니다.</a>
</section>
</body>
</html>
JavaScript
const app = Vue.createApp({
data() {
return {
courseGoal: '<h3>뷰 열심히 공부하기</h3>',
vueLink: "https://vuejs.org/",
}
},
methods: {
randomMsg() {
return this.courseGoal
}
}
}).mount('#user-goal')
- 보통 {{ }} 문법에 html 태그를 직접적으로 넣는건 허용되지 않는다.
- 이는 보안상 이슈 때문이며, 크로스사이트스크립팅 공격을 허용할 수 있다.
- 다만 몇몇 경우에 한해 html 태그를 직접 문서에 바인딩해야할 경우가 생기는데,
- 이 때는 html 태그에 v-html="vue데이터" 형식으로 추가할 수 있다.
'했던것들 > Vue.JS' 카테고리의 다른 글
실습) vue 데이터 바인딩 응용 (0) | 2023.02.07 |
---|---|
선언형 접근 방식 / vue에 대한 줄글 1 (0) | 2023.02.07 |
vue의 this 키워드 및 methods 사용 / 동적 데이터 바인딩 연습 (0) | 2023.02.07 |
interpolation과 v-bind 및 vue cdn 내부동작 추론 (0) | 2023.02.07 |
Vue App 인스턴스 생성 및 연결 + 데이터 바인딩 (0) | 2023.02.06 |