본문 바로가기
study/Vue.js

Vue.js HTML태그 인식하기 / 이미지 불러오기 : v-html, v-bind

by 고기만두(개발자) 2022. 6. 5. 10:18
728x90
반응형
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14"></script>
    <script>
        window.onload = function(){
            var test1 = new Vue({
                el : '#test1',
                data : {
                    a1 : '문자열1',
                    a2 : '문자열2',
                    a3 : '<h3>문자열3</h3>', //html태그 자체도 그냥 문자열로 인식을 해버림 : template로 인식하게 하려면?
                    a4 : 'image/pengsoo.jpg',
                    a5 : 300,
                    a6 : 200

                }
            })
        }
    </script>
</head>
<body>
    <div id="test1">
        <h3>{{a1}}</h3>
        <h3>{{a2}}</h3>
        <h3>{{a3}}</h3>
        <div v-html = 'a3'></div> <!-- 이렇게 해야 html태그 인식가능-->
        <img src = '{{a4}}'><br/>
        <img v-bind:src = 'a4' v-bind:width='a5' v-bind:height='a6'><br/>
    </div>
</body>
</html>

vue객체에 데이터를 집어넣으면서, HTML 을 넣을 수 있다!

그러나.... 그냥 문자열처럼 똑같이 집어넣으면 리터럴리 문자열로 인식을 해버림.

그래서 v-html 을 넣고, data의 해당 번지를 지정하여 html 태그를 태그로 인식할 수 있도록 처리해줘야 한다.

 

이미지도 마찬가지로, 그냥 src에 넣어버리면 그냥 이미지 자리만 생기고, 아무 일도 벌어지지 않는다.

그래서 v-bind 를 사용하고, v-bind 뒤에 src , width, height 설정을 붙여야 한다.

이미지 경로는 일반 문자열처럼 똑같이 경로 지정해서 가져올 수 있음.

v-html

소스 까보면 똑같이  html에다 직접 넣은 것 처럼 보인다.

v-bind
펭하!

 

728x90
반응형

댓글