v-bind๋ก props์ ์ด๋ค ๊ฐ์
๋ณด๋ด๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
๊ทธ๋ ๋ค๋ฉด v-bind๋ ๋ญ๊น?
v-bind
- HTML ์์ฑ์ด๋ ์ปดํฌ๋ํธ props์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๋ ๋๋ ํฐ๋ธ์ด๋ค.
- ์ถ์ฝํ์ผ๋ก :๋ฅผ ์ธ ์ ์๋ค.
- ์ฃผ๋ก ์์ฑ๊ฐ์ ๋ฐ๊พธ๊ฑฐ๋, ์ปดํฌ๋ํธ์ props ์ ๋ฌํ๊ฑฐ๋, ์ํ์ ๋ฐ๋ผ ํด๋์ค๋ ์คํ์ผ์ ํ ๊ธํ ๋ ์ฌ์ฉํ๋ค.
๋๋ ํฐ๋ธ
- HTML ํ๊ทธ ์์ ๋ค์ด๊ฐ๋ ์์ฑ์ ์ญํ ์ ํ๋ฉฐ, v-๋ผ๋ ์ ๋์ฌ๊ฐ ๋ถ๋ ๊ฒ์ด ํน์ง์ด๋ค.
๋ฐ์ธ๋ฉ
- ํ๋ก ํธ์๋์์ ๋ฐ์ธ๋ฉ์ ์ฃผ๋ก UI ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์๋ฏธํ๋ค.
- ์น ํ์ด์ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์๊ฐ ๋ณด๋ ๋ฐ์ดํฐ(View)์ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ(Model)๋ฅผ ์ฐ๊ฒฐํ๊ณ ๋๊ธฐํํ๋ ๊ธฐ๋ฒ์ด๋ค.
- ์ฆ, ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด UI๋ ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋๊ฑฐ๋, UI์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์ดํฐ์ ๋ณ์๋๋ ๋ฑ ๋ ์ ๋ณด ์์ค๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ผ์น์ํจ๋ค.
ํ ๊ธ
- ๋ ๊ฐ์ง ์ํ๋ ์ต์ ์ฌ์ด๋ฅผ ๋ฒ๊ฐ์ ์ ํํ๋ ๋์์ ์๋ฏธํ๋ค.
v-bind์ ์ถ์ฝํ ์ฝ๋
- ์ถ์ฝํ์ด ์๋ ๋
v-bind:href="url"
- ์ถ์ฝํ์ผ ๋
:href="url"
v-bind๋ฅผ ์ด์ฉํ์ฌ ๋ค๋ฅธ ์น์ฌ์ดํธ ๋ค์ด๊ฐ๋ณด๊ธฐ
- ํ๋ฉด
- ์ฝ๋
<script setup>
site = "https://vuejs.org/"
</script>
<template>
<a :href="site" target="_blank" rel="noopener noreferrer">
Vue ๊ณต์ ์ฌ์ดํธ๋ก ์ด๋
</a>
</template>
<a> ์์๋ href ํน์ฑ์ ํตํด ๋ค๋ฅธ ํ์ด์ง๋ ๊ฐ์ ํ์ด์ง์ ์ด๋ ์์น, ํ์ผ, ์ด๋ฉ์ผ ์ฃผ์์ ๊ทธ ์ธ ๋ค๋ฅธ URL๋ก ์ฐ๊ฒฐํ ์ ์๋ ํ์ดํผ๋งํฌ๋ฅผ ๋ง๋ ๋ค. Vue ๊ณต์ ์ฌ์ดํธ๋ก ์ด๋์ ๋๋ฅด๋ฉด href๋ฅผ v-bind๋ก ํด๋์ script์ ์ ์ ์ฃผ์๊ฐ์ด ์ฐ๊ฒฐ๋ผ์ ํด๋น ์ฌ์ดํธ๋ก ์ด๋ํ๋ค.
target์ ๋งํฌ๋ฅผ ์ด๋์ ์ด์ง ์ค์ ํ๋ ๊ฒ์ผ๋ก _blank๋ฅผ ์ค์ ํ์ฌ ์ํญ์์ ์ด๋๋ก ํ๋ค.
๊ทธ๋ฆฌ๊ณ rel์ ๋งํฌ์ ์์ฑ์ ๋ํ๋ธ๋ค. noopener๋ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๋ธ๋ผ์ฐ์ ์ปจํ ์คํธ ์ก์ธ์ค ๊ถํ ์์ด ์ ํญ์์ ๋งํฌ๊ฐ ์ด๋ฆฐ๋ค. ์ ๋ขฐํ ์ ์๋ ๋งํฌ๋ฅผ ์ด ๋ ์ ์ฉํ๋ค. noopener๋ _blank์ผ ๋ ์ ์ฉ๋๋ ๊ฐ์ด๋ผ์, noopener๋ฅผ ์ฌ์ฉํ๋ฉด a ํํฌ๊ฐ ๋ค๋ฅธ target์ ๊ฐ์ ธ๋ ์ํญ์์ ๋งํฌ๋ฅผ ์ฐ๊ฒฐํ ์๋ ์๋ค. noopener ๋ค์์ผ๋ก norefferer์ ์ผ๋ค. norefferer์ ํ์ดํผ๋งํฌ๋ก ์ด๋ํ ๋ referer ํค๋๋ฅผ ๋ณด๋ด์ง ์์, ์ด๋์ ์๋์ง ๋์ถํ์ง ์๋๋ค.
๋ณดํต target์ _blank๋ฅผ ์ค์ ํ๋ฉด, ๋ณด์์์ ์ทจ์ฝ์ ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ rel ์์ฑ์ noopener๊ณผ noreferer๋ฅผ ์ง์ ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
์๋์ ์ถ์ฒ๋ฅผ ๋จ๊ฒจ๋๊ฒ ์ต๋๋ค.
๋ธ๋ก๊ทธ์ ์ ๊ฐ ์ต๋ํ ์ดํดํ ๋ด์ฉ๊น์ง๋ง ์ ๋๊ฑฐ๋ผ
์ถ์ฒ์ ๋ค์ด๊ฐ์๋ฉด ๋ ๋ง์ ๋ด์ฉ์ด ์์ด ๊ณต๋ถํ์๋๋ฐ ๋์๋์ค๊ฒ๋๋ค.
๐ชฝ
ํ๋ฆฐ ๋ด์ฉ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์
[vue 3] 04. v-bind๋ฅผ ํตํ ์์ฑ ์ฒ๋ฆฌ
์ด๋ฒ ํฌ์คํธ์์๋ v-bind๋ก ์์ํ๋ directive์ ๋ํด์ ์ดํด๋ณด์. ๋ณธ ๋ด์ฉ์ ๋ค์ด๊ฐ๊ธฐ ์ ์ directive์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ๋ค์ ํ๋ฒ ์๊ธฐ์์ผ๋ณด์. v-bind v-bind?v-bind๋ html์ ์์ฑ์ model์ ๋ฐ์ดํฐ๋ฅผ ์ฐ
goodteacher.tistory.com
[VueJS] v-bind ์ v-on ์ฝ์ด ์ฌ์ฉํ๊ธฐ
vueJS์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ v-bind ์ v-on ํํ์์ ๋ํ ์ฝ์ด์ ๋ํด ์์๋ณด์. ์๋ง ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ํํ์์ด๋ผ vueJS์์๋ ์ฝ์ด๋ฅผ ๋ง๋ค์ด๋์๊ฒ ์๋๊นํ๋ ์๊ฐ์ด๋ ๋ค. ์์ ๋ฅผ ํตํด ์ ํด
mine-it-record.tistory.com
Vue.js
Vue.js - ํ๋ก๊ทธ๋์๋ธ ์๋ฐ์คํธ๋ฆฝํธ ํ๋ ์์ํฌ
ko.vuejs.org
[IT์ฉ์ด] ํ ๊ธ(Toggle)์ ๋ป
๊ฐ์ธ์ ์ธ ๋ฉ๋ชจ๋ฅผ ์ํด ์์ฑ๋ ๊ธ์ด๋ฏ๋ก ๊ฐ๋ฒผ์ด ์ฐธ๊ณ ์ฉ์ผ๋ก ๋ด์ฃผ์ธ์. [์ปดํจํฐ์ธํฐ๋ทIT์ฉ์ด๋์ฌ์ ] 1) ๋ ๊ฐ์ง ์์ ์ํ๋ฅผ ์ทจํ ์ ์๋ ์ฅ์น์ ๊ดํ ๊ฒ. 2) ์ฃผ์ด์ง ์๊ฐ์ ๋ ๊ฐ์ง ์์ ์ํ ์ค
chlo22.tistory.com
a ํ๊ทธ์ href ์์ฑ ๊ฐ์Vue ๋ด์ ์ ์ธ๋ ๊ฐ์ ๋ฃ๊ณ ์ถ์ ๊ฒฝ์ฐ(Vue v-on:click, v-bind:href, router-link :to)
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ {{ mustached }} ๊ธฐํธ๋ฅผ ํตํด์ Vue ๋ด์ ๊ฐ ํน์ ํจ์๋ฅผ ๋ถ๋ฌ์์ต๋๋ค. ํ์ง๋ง ํ๋ฉด์ ๋ฌธ์์ด์ ์ถ๋ ฅํด์ผํ๋ ๊ฐ๋จํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ HTML ์์ฑ ๋ด์์ Vue์ ์ ์ธ๋ ๊ฐ์ ์ฌ์ฉํ๊ณ ์ถ
heewon26.tistory.com
<a> - HTML: Hypertext Markup Language | MDN
์ด ์์๋ ์ ์ญ ํน์ฑ์ ํฌํจํฉ๋๋ค. download ๋งํฌ๋ก ์ด๋ํ๋ ๋์ ์ฌ์ฉ์์๊ฒ URL์ ์ ์ฅํ ์ง ๋ฌผ์ด๋ด ๋๋ค. ๊ฐ์ ์ง์ ํ ์๋ ์๊ณ , ์ง์ ํ์ง ์์ ์๋ ์์ต๋๋ค. ๊ฐ์ด ์์ผ๋ฉด ํ์ผ ์ด๋ฆ๊ณผ ํ์ฅ์
developer.mozilla.org
[HTML] target="_blank"์ noopener, noreferrer์ ๊ด๊ณ
VS Code์์ emmet์ ์ฌ์ฉํ๋ฉด, aํ๊ทธ๋ฅผ ์์ฑํ ๋ target์ \_blank ๋ก ์ฃผ๋ฉด noopener ์ norefferer ์ ์์ฑ๊ฐ์ผ๋ก ๊ฐ์ง๋ rel ์์ฑ์ด ์๋์์ฑ๋๋ค. ์ ์ด๋ฐ ์์ฑ์ด ์๋์์ฑ ๋๋ ๊ฑด์ง ์์๋ณด์.์์๊ฐ ์์ฑ
velog.io