VueJS Basics - TheOpenCloudEngine/uEngine-cloud GitHub Wiki
VueJS μ¬μ©λ²μ κ°λ¨ν νμ΅νλ€.
VueJS λ μ°λ¦¬λλΌμ μνκ³κ° μ ꡬμ±λμ΄ μκ³ , νκΈ λ¬Έμλ‘ λ guide λ μ λμ΄μλ€.
μ¬κΈ°μμλ κ°λ¨ν μ¬μ©λ²μ μ΅νκ³ , μμΈν νμ΅μ guide λ¬Έμ μμ μ°Έμ‘° νκΈ°λ°λλ€.
- κΈ°λ³Έ νμ΅ : VueJS Basics#very-very-first-example
μ¬κΈ°μ μ¬μ©ν μμ λ€μ μ§μ htmlλ‘ λ§λ€μ΄μ μλνλκ²μ μΆμ²ν¨
VueJS λ java μ class λΌκ³ μκ°νλ©΄ λλ€.
class λ member field μ operation λ‘ κ΅¬μ±μ΄ λλλ°, VueJS λ μ¬κΈ°μ face κ° μΆκ°λμλ€.
face λ template , μ¦ μμ μμ μμ <div>
μ ν΄λΉνλ μμμ΄κ³ ,
member field λ var app =
λΆλΆμΌλ‘ λ³Ό μμλ€.
operation μ setInterval()
μ²λΌ μ¬μ©ν λΆλΆμ΄λ€.
- λλ²μ§Έ νμ΅ : VueJS Basics#incorporating-components
Component μ κ°λ
μ λ¨μ΄ λ§λ€μ΄ λμ κ²μ μΈκΈλ§μΌλ‘ μ¬μ©ν μ μλ€λ μλ―Έμ΄λ€.
μνκ³κ° μ ꡬμ±μ΄ λμ΄ μλ§μ Vuejs κ°λ°μλ€μ΄ λ§μ μ»΄ν¬λνΈλ€μ λ§λ€μ΄ λμλ€.
μ°λ¦¬λ μ΄κ²μ μλμ²λΌ μ μΈλ§ νμ¬ μ¬μ© ν μ μλ€.
<script src="https://unpkg.com/[email protected]"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.3/require.js"></script>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/vue-material.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<md-avatar>
, <md-speed-dial>
κ°μ custom tag λ₯Ό μ¬μ©νμ¬ μΈκΈλ§ νμ¬ μ¬μ©νμλ€.
μ΄κ²μ΄ μλ―Ένλ λ°λ λ§μ΄ν¬λ‘μλΉμ€λ₯Ό λ§λλ νμ μ¬μ©νλ €λ tag λ§ λ§λ€μ΄μ κ΄λ¦¬λ₯Ό νκ³ ,
ν©μ³μ UIλ₯Ό λ§λλ νμ tag λ₯Ό μ¬μ©νμ¬ μΌκ΄λ UI ꡬμ±μ ν μμλ μ₯μ μ΄ μλ€.
μ¬κΈ° μμ μμλ vuematerial λ₯Ό μ¬μ©νμμ§λ§ κ³μ λ μ’μ component λ€μ΄ λμ€κ³ μλ€.
μ°Έκ³ vuematerial site : https://vuematerial.io/getting-started
μ°Έκ³ component μμΈν μ€λͺ : http://www.metaworks4.io/
- μΈλ²μ§Έ νμ΅ : VueJS Basics#ajax-and-material
μμ scriptμ 보면
Vue.component('demo-grid',{})
λ demo-grid λΌλ custom componentλ₯Ό λ§λ κ²μ΄λ€.
template
μ μΌκ΅΄μ΄λ€. idκ° grid-template μ΄λΌλ λΆλΆμ κ°μ Έμμ μκΈ°κ° μ΄λ»κ² μκ²Όλ€κ³ μλ €μ€λ€.
props
λΆλΆμ΄ μλ€. μ΄ λΆλΆμ java μ public field λΌκ³ μκ°νλ©΄ λλ€.
μΈλΆμμ κ°μ μ
ν
νμ¬ λ°μ΄ λ£μμκ° μλ€.
data
λΆλΆμ java λ‘ μΉλ©΄ private field μ΄λ€. (λ΄λΆμμλ§ μΈ κ²μ΄λ€.)
<demo-grid
:data="gridData"
:columns="gridColumns"
:filter-key="searchQuery">
</demo-grid>
μ¬κΈ°μ vuejs λ₯Ό μ¬μ©ν λ νμμ μΌλ‘ μ¬μ©νλ syntax λ₯Ό κ°λ¨ν μ€λͺ
νκ² λ€.
MVVM μ€μ angularjsλ angular2+ λ₯Ό μ¬μ©νμλ©΄ html μμμ λ³μλ₯Ό 맀ννκ³ ,
if λ¬Έμ΄λ for λ¬Έμ μ¬μ©νμ€λ, ng-model, ng-if(angularjs),
ngModel, *ngIf(angular2+) λ±μ μ¬μ©ν΄ λ³Έ κ²½νμ΄ μμΌμ€ κ²μ΄λΌ μκ°νλ€.
angular μμ ng
λΌλ prefixλ₯Ό μ¬μ©νμλ€λ©΄, vuejsμμλ v-
λ₯Ό μ¬μ©νλ€.
v-bind
,v-on
,v-for
,v-if
,v-model
λ± λ€μνκ² μλλ°
μ΄μ€μμ v-bind
,v-on
λ Shorthands λ₯Ό μ¬μ©νλ€.
<!-- full syntax -->
<a v-bind:href="url"> ... </a>
<!-- shorthand -->
<a :href="url"> ... </a>
<!-- full syntax -->
<a v-on:click="doSomething"> ... </a>
<!-- shorthand -->
<a @click="doSomething"> ... </a>
μμ demo-grid μμ :data="gridData"
λΆλΆμ v-bind λ₯Ό μ¬μ©νμ¬
gridData λΌλ μΈλΆ data λ₯Ό eval νμ¬ props μ data μ κ°μ μ£Όμ
(bind) μν¨ κ²μ΄λ€.
λ§μ½ :
μ΄ μμ΄ data="gridData"
λΌκ³ λ§ μ¬μ©νμλ€λ©΄, gridData λΌκ³ νλ
string λ¬Έμμ΄μ data μ λ£κ² λ€λ μλ―Έμ΄λ€.