Vue-데이터바인딩

키워드
데이터바인딩
{{데이터 이름 }}
data() { return {} }
Object형식으로 저장
HTML속성도 데이터바인딩 가능
진행일시
2021/09/22
이메일
조사자

1. [ 데이터바인딩이란 ? ]

JS 데이터를 HTML에 꽂아 넣는 문법이라고 생각하면 편하다. → 표기법 : {{데이터 이름}}

2. [ 데이터 바인딩 문법 ]

데이터 바인딩 문법은 아래에 예시를 확인하자. JS데이터를 가지고와야하므로 script에서 작성한다.
코드작성 위치는 script부분이며 data() { return {}} 이라고 추가해줘야한다.
필요한 data는 return {} 안에다가 Object형식으로 입력해주면된다 { 자료이름 : 자료내용 }

2-1 [ Sample Code ]

<!-- template안에는 HTML 코드 짜면된다.--> <template> <img alt="Vue logo" src="./assets/logo.png"> <!-- {{데이터 바인딩}} -js 데이터를 HTML에 꽂아 넣는 문법--> <div> 원룸샵 <!-- HTML 속성도 데이터 바인딩 가능 표현할 때는 :속성="데이터이름"--> <h4 class='red' :style="스타일">{{products[0]}}</h4> <!-- 밑에 있는 데이터 HTML 데이터HTML에 꽂아넣고싶으면 {{데이터 이름}} --> <p>{{ price1 }} 만원</p> </div> <div> <h4>{{products[1]}}</h4> <p>{{ price2 }} 만원</p> </div> <div> <h4>{{products[2]}}</h4> <p>{{ price3 }} 만원</p> </div> </template> <!-- script안에는 JS 코드 짜면된다.--> <script> //문법만 달랑 배우면 혼자서 코드를 못짬, 이 문법 언제쓰는지 왜쓰는지 용도를 알아야됨 /** App Vue가 처음에 다 끌고와서 뿌려주는거임(대빵)*/ export default { name: 'App', //vue는 data를 여기다가 저장한다 data보관통 //{{데이터 바인딩}} 하는이유 // 1. HTML에 하드코딩 해놓으면 나중에 변경 어려움 (가변성있을때는 data바인딩하는게좋다) // 2. Vue의 실시간 자동 렌더링 쓸때 -> Vue는 신기해서 Data를 변경하면 data와 관련된 HTML에도 실시간으로 반영됨 // {{}} 이거 써야 실시간 자동렌더링 됨 data() { return { //여기에 데이터보관하자 //데이터는 object 자료로 저장해주셈 {자료이름 : 자료내용} //충격 HTML 속성도 데이터 바인딩 가능 price1 : 60, price2 : 70, price3 : 80, 스타일 : 'color : blue', products : ['역삼동원룸', '천호동원룸', '마포구원룸'], } }, components: { } } </script> <!-- style안에는 CSS 코드 짜면된다.--> <style> #app { font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>
JavaScript
복사

2. [ 데이터바인딩은 왜 쓰며 어쩔때 쓰일까? ]

문법만 배우면 혼자서 코드를 짜기는 어렵다, 그래서 항상 문법이 언제쓰이고 왜 쓰는지 용도를 알아야하는게 중요하다.

3-1 [ Vue에서 데이터바인딩 하는 이유 ]

1.
HTML 하드코딩 해놓으면 나중에 변경이 어려우며 data중에 가변성이 있는 data들만 데이터 바인당하는게 좋다.
2.
Vue의 실시간 자동 렌더링을 쓸 때 활용한다
a.
자동렌더링이란 ? → Vue는 신기해서 Data를 변경하면 Data와 관련된 HTML에도 실시간으로 반영됨 → 이걸 반영하기위해서 {{ }} 기호를 써줘야한다
3.
Vue는 HTML 속성도 데이터 바인딩이 가능하다.
a.
어떻게할까 ? → <!-- HTML 속성도 데이터 바인딩 가능 표현할 때는 :속성="데이터이름"-->
<h4 class='red' :style="스타일">