일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 객체
- 모던
- js
- 자바스크립트
- this
- 투두리스트
- 스코프
- function
- CSS
- 컴포넌트
- 리액트
- 데이터 타입
- react
- const
- ES6
- 모던 자바스크립트
- 타입스크립트
- redux
- VUE
- BIND
- Number
- var
- let
- 뷰
- null
- typescript
- todolist
- Interface
- 라우터
- 함수
- Today
- Total
홍준혁
Vue.js-톺아보기 본문
※※이 글은 joshua1988.github.io/vue-camp/vue의 참고하여 작성되었습니다※※
※※이 글은 배운 것을 바로 써가는 형식이므로 틀린 내용이 있을 수 있습니다.※※
학교 동아리 바인드에서 소프트웨어 나르샤 프로젝트를 진행하게 되었다.
나는 웹을 맡기로 했는데 Vue나 React를 사용해서 해보려고 한다. 하지만 React는 지금 하기에는 어려운 느낌이 있는 거 같아서 상대적으로 쉽다는 Vue를 한번 해볼려고 한다.
먼저 Vue는 자바스크립트 기반의 라이브러리이기 때문에 자바스크립트의 기초를 알아야 한다.
-(출처 joshua1988.github.io/vue-camp/js/array.html#% EB% B0% B0% EC%97% B4-%EC% A1% B0% EC% 9E%91% ED%95%98% EA% B8% B0)
위 사이트에서 자바스크립트를 공부하고 Vue에 입문하는 게 가장 베스트이다.
*this개념을 잘 집고 넘어가도록 하자.!!!!
이제 Vue 설치법을 알아보도록 하자
1-npm install vue
2-yarn global add @vue/cli
3-vue init webpack 프로젝트 이름
이런 식으로 하면 vue에서 몇몇 가지 프로젝트 설정에 관한 질문을 할 건데 default값으로 해도 무방하다.
이제 프로젝트가 생성되었으니 cd 프로젝트 이름을 한 다음에 yanr or npm start dev 명령어로 시작한다.
--혹은 스크립트 주소로 Vue를 사용하는 방법이 있다.--
(학습의 용도로 쓴다면 CDN방식을 추천한다.)
이 사진은 Vue의 인스턴스 라이프사이클이라는 것인데, 인스턴스 라이프사이클이라는 것은 뷰의 인스턴스가 생성되고 소멸되기까지 거치는 과정을 의미한다.
라이프 사이클을 알아야 하는 이유는 라이프 사이클 훅 때문인데 특정 시점에 원하는 로직을 구현하기 위해 알아야 할 필요가 있다는 것이다. (개념 정도만 알고 넘어가자)
먼저 뷰 인스턴스를 생성한 다음에 변수를 사용하는 방법을 알아보도록 하자
<!DOCTYPE html>
<html>
<head>
<title>Vue.js Sample</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">{{ message }}</div>
<script>
new Vue({
el: "#app",
data: {
message: "Hello World",
},
});
</script>
</body>
</html>
코드의 설명을 하자면 new Vue()라는 구문으로 인스턴스를 생성한 다음에 el이라는 객체에 #app이라는 값을 넣어주게 되면 app이라는 아이디 값을 가지는 엘리먼트를 의미하게 된다. 다음 data라는 객체에 message라는 속성을 넣어주었는데 message의 내용을 Hello World라고 지정한 다음에 div태그의 app이라는 이름의 태그 안에 {{ message }}라는 값을 넣어주게 되면 Vue인스턴스 안에 있는 값인 message가 들어가게 된다.
*설명이 정확하지 않을 수 있습니다.
이것이 Vue인스턴스에서 data를 사용하는 방법이다.
그다음 methods라는 것을 알아볼 것인데 이것은 메서드를 담는 곳이다.
<!DOCTYPE html>
<html>
<head>
<title>Vue.js Sample</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">{{ nextYear() }}</div>
<script>
new Vue({
el: "#app",
data: {
person: {
name: "홍준혁",
age: 17,
},
},
methods: {
nextYear: function () {
return (
this.person.name +
"은 내년에 " +
(this.person.age + 1) +
"살 입니다."
);
},
},
});
</script>
</body>
</html>
이런 식으로 사용하면 된다.
메서드 내부에서 this 키워드를 사용하면 객체에 접근할 수 있다.
즉 data의 값을 접근할 수 있게 되는 것이다.
하지만 뭔가 생략된 거 같은 느낌이 들것이다. 왜 this.data.person.name 이런 식으로 사용하지 않고
this.person.name 이렇게 쓰냐면 Vue.js에서 this에 data를 묶어서 표현해주기 때문에 생략 가능하다.
※이때 꼭 함수를 사용할 때는 ()를 포함시켜줘야 한다.
또한 다른 함수에서 nextYear함수를 쓰기 위해서는 this를 사용하면 된다.
이제 함수의 인자 값을 전달하는 코드를 작성해 보겠습니다.
<!DOCTYPE html>
<html>
<head>
<title>Vue.js Sample</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">{{ nextYear("반갑습니다") }}</div>
<script>
new Vue({
el: "#app",
data: {
person: {
name: "홍준혁",
age: 17,
},
},
methods: {
nextYear: function (greeting) {
return (
greeting +
"! " +
this.person.name +
"은 내년에 " +
(this.person.age + 1) +
"살 입니다."
);
},
},
});
</script>
</body>
</html>
nextYear함수를 만드는 과정에서 greeting이라는 인자를 받겠다고 선언을 한다. 그다음 이 함수를 호출할 때 () 안에 값을 넣어주면 함수에서 그 값을 변수처럼 사용할 수 있게 된다.
즉 nextYear함수를 사용할 때 "반갑습니다"라는 내용이 함수에 전달되게 된다.
함수의 코드를 줄일 수 있는 방법이 있는데 바로 function을 생략하는 방법이다.
nextYear(greeting) {
return ();
}
오늘은 여기까지 하도록 하겠습니다. 다음에 배워볼 것은 Vue의 데이터 바인딩입니다.
'Vue.js' 카테고리의 다른 글
Vue.js-watch속성 (1) | 2020.09.14 |
---|---|
Vue.js-computed (1) | 2020.09.14 |
Vue.js-폼 입력 바인딩 (1) | 2020.09.14 |
Vue.js-이벤트 (0) | 2020.09.14 |
Vue.js-데이터 바인딩 (0) | 2020.09.13 |