Vue Component
Vue Component ๊ตฌ์กฐ
<template>
<div id="app">
<img alt="Vue logo" src="./assets/logo.png" />
<HelloWorld msg="Welcome to Your Vue.js App" />
</div>
</template>
<script>
import HelloWorld from "./components/HelloWorld.vue";
export default {
name: "App",
components: {
HelloWorld,
},
};
</script>
<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>
โ ํ ํ๋ฆฟ(HTML)
- HTML์ body ๋ถ๋ถ
- ๋์ผ๋ก ๋ณด์ฌ์ง๋ ์์ ์์ฑ
- ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ฅผ html์์ ์ฒ๋ผ ์ถ๊ฐ ๊ฐ๋ฅ
โ ์คํฌ๋ฆฝํธ(JavaScript)
- JavaScript ์ฝ๋๊ฐ ์์ฑ๋๋ ๊ณณ
- ์ปดํฌ๋ํธ ์ ๋ณด, ๋ฐ์ดํฐ, ๋ฉ์๋ ๋ฑ vue ์ธ์คํด์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋๋ถ๋ถ์ด ์์ฑ๋๋ค.
โ ์คํ์ผ(CSS)
- CSS๊ฐ ์์ฑ๋๋ฉฐ ์ปดํฌ๋ํธ์ ์คํ์ผ์ ๋ด๋น
๊ตฌ์กฐ ์ ๋ฆฌ
โ ์ปดํฌ๋ํธ๋ค์ด tree ๊ตฌ์กฐ๋ฅผ ์ด๋ฃจ์ด ํ๋์ ํ์ด์ง๋ฅผ ๋ง๋ ๋ค.
โ root์ ํด๋นํ๋ ์ต์๋จ์ component๊ฐ App.vue
โ ์ด App.vue๋ฅผ index.html๊ณผ ์ฐ๊ฒฐ
โ ํ๋์ ํ์ด์ง๋ง๋ค rendering -> SPA
Vue component ์ค์ต
MyComponentj.vue
// MyComponent.vue
<template>
<div>
<h1>This is my Component</h1>
</div>
</template>
<script>
export default {
name: "MyComponet",
};
</script>
<style></style>
src/components/
์์ ์์ฑ- script์ ์ด๋ฆ ๋ฑ๋ก
- template์ ์์ ์ถ๊ฐ
component ๋ฑ๋ก 3๋จ๊ณ
<template>
<div id="app">
<img alt="Vue logo" src="./assets/logo.png" />
<!-- 3. ๋ณด์ฌ์ฃผ๊ธฐ -->
<MyComponent />
<HelloWorld msg="Welcome to Your Vue.js App" />
</div>
</template>
<script>
import HelloWorld from "./components/HelloWorld.vue";
// 1. ๋ถ๋ฌ์ค๊ธฐ
// import MyComponent from './components/MyComponent.vue'
import MyComponent from "@/components/MyComponent";
export default {
name: "App",
components: {
HelloWorld,
// 2. ๋ฑ๋กํ๊ธฐ
MyComponent,
},
};
</script>
- ๋ถ๋ฌ์ค๊ธฐ
โimport {instance name} from {์์น}
โ@
๋ src์ shortcut
โ.vue
๋ ์๋ต ๊ฐ๋ฅ - ๋ฑ๋กํ๊ธฐ
- ๋ณด์ฌ์ฃผ๊ธฐ
![](https://blog.kakaocdn.net/dn/DLtnQ/btrQdzEVVuH/3KGZBYekdkh4SqRgbZy02k/img.png)
์์ ์ปดํฌ๋ํธ ์์ฑ
src/components/
์์MyComponentItem.vue
์์ฑ
<!-- MyComponentItem.vue -->
<template>
<div>
<h3>Child Component of MyComponent</h3>
</div>
</template>
<script>
export default {
name: "MyComponentItem",
};
</script>
<style></style>
- MyComponent์ MyChild ๋ฑ๋ก
// MyComponent.vue
<template>
<div class="border">
<h1>This is my Component</h1>
<!-- 3. ๋ณด์ฌ์ฃผ๊ธฐ -->
<MyComponentItem />
</div>
</template>
<script>
// 1. ๋ถ๋ฌ์ค๊ธฐ
import MyComponentItem from "@/components/MyComponentItem";
export default {
name: "MyComponet",
// 2. ๋ฑ๋กํ๊ธฐ
components: {
MyComponentItem,
},
};
</script>
<style>
.border {
border: solid 1px black;
}
</style>
'โญ Personal_Study > Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Emit Event (0) | 2022.11.13 |
---|---|
Pass Props (0) | 2022.11.12 |
SFC (Single File Component) (0) | 2022.11.11 |
Vue_CLI (0) | 2022.11.09 |
Vue: advanced attributes (0) | 2022.11.07 |
๋๊ธ