es6-promise
-
es6-promise
IE는 Promise를 지원하지 않는다. 이를 해결하기 위해선 es-promise의 polyfill기능을 활성화 해야한다.
vuex나 axios를 사용하는 시점보다 빨리 불러와야 정상 동작한다.
es6-promise
IE는 Promise를 지원하지 않는다. 이를 해결하기 위해선 es-promise의 polyfill기능을 활성화 해야한다.
vuex나 axios를 사용하는 시점보다 빨리 불러와야 정상 동작한다.
watch
https://ryuzuka.github.io/VUE/tutorial/20_watch.html
data의 변경에 반응하는 일반적인 방법, 감시자 역할을 한다.
es6-promise (0) | 2023.05.19 |
---|---|
vuex (0) | 2019.02.24 |
vue-router (0) | 2019.02.23 |
axios (0) | 2019.02.23 |
트랜지션 (0) | 2019.02.10 |
vuex
https://ryuzuka.github.io/VUE/tutorial/18_vuex.html
Vue.js에 어플리케이션에 대한 상태 관리 패턴 + 라이브러리. ( 모든 데이터( state ) 통신을 한 곳에서 중앙 집중식으로 관리한다. )
1. 여러 컴포넌트가 하나의 데이터를 공유하고 있을 때
2. 부모 - 자식 컴포넌트 간의 데이터 공유가 아닌 수평적인 컴포넌트 간의 데이터 공유가 필요할때
설치
- state : 컴포넌트 간 공유될 data
- view : 데이터가 표현될 template
- actions : 사용자의 입력에 따라 반응할 methods
state
Vuex의 애플리케이션 상태를 보유하고 있는 컨테이너. 저장소의 상태가 변경되면 효율적으로 대응하고 업데이트 한다.
Vue.use( Vuex )로 인해 모든 자식 컴포넌트에 저장소를 주입 할 수 있다. - this.$store 접근 가능
( 컴포넌트의 data 역할 )
각 컴포넌트에서 수행 로직을 호출하고 Vuex에서 state 변경이 이루어지도록 하는 역할을 한다.
( 컴포넌트의 computed 역할 )
getters의 저장된 속성을 mapGetters를 활용하여 간편하게 사용할 수 있으며 vuex 에서 관리 된다.
vuex의 state 값을 변경하는 로직 ( mutations가 낯설다면 기억하기 쉽게 setters로 이해할 수 있다. )
1. 동기 처리 로직 정의 ( actions - 비동기 처리 로직 정의 )
2. commit을 이용하여 state를 변경한다. ( 컴포넌트에서 직접 state에 접근하여 변경 - anti 패턴 )
mapGetters 와 마찬가지로, Vuex 에 내장된 mapMutations 를 이용하여 코드 가독성을 높일 수 있다.
actions는 비 순차적 또는 비동기 처리 로직들을 선언한다. state의 변경을 추적하기 위해 결국 mutations의 method를 commit하는 구조가 된다.
1. 동기 처리 로직 정의 ( mutations - 동기 처리 로직 정의 )
2. payload, object 스타일의 dispatch를 지원한다.
mapGetters, mapMutations 헬퍼 함수들과 마찬가지로 mapActions 도 동일한 방식으로 사용할 수 있다.
es6-promise (0) | 2023.05.19 |
---|---|
watch (0) | 2023.04.11 |
vue-router (0) | 2019.02.23 |
axios (0) | 2019.02.23 |
트랜지션 (0) | 2019.02.10 |
vue-router
https://ryuzuka.github.io/VUE/tutorial/17_vue-router.html
라우팅 기능을 구현할 수 있도록 지원하는 공식 라이브러리
설치
VouRouter
<router-view></router-view> // 페이지 표시 엘리먼트 - 해당컴포넌트가 화면에 표시되는 영역
history mode : url의 hash( #태그 ) 값을 제외하고 기본 URL 방식을 사용한다.
( vue-router의 기본 모드는 hash mode 이다. )
동적 라우트 매칭 ( /: )
동일한 라우트에 여러 동적 세그먼트를 가질 수 있으며, $route.params 로 접근 할 수 있다.
패턴 | 일치하는 패스 | $route.params |
---|---|---|
/user/:username | /user/evan | { username: 'evan' } |
/user/:username/post/:post_id | /user/evan/post/123 | { username: 'evan', post_id: '123' } |
매칭 우선순위
동일한 URL이 여러 라우트와 일치하는 경우가 있다. 이 경우 일치하는 우선 순위는 라우트 정의의 순서에 따라 결정된다. 즉, 경로가 더 먼저 정의 될수록 우선 순위가 높아진다.
children( 중첩된 라우트 )
<route-view>에 렌더링 된 컴포넌트 내부에는 자신의 중첩 된 <route-view>를 포함 할 수도 있다.
프로그래밍 방식 네비게이션
router.push( location, onComplete, onAbort ) - onComplete, onAbort 콜백 제공
선언적 방식 | 프로그래밍 방식 |
---|---|
<router-link :to="..."> | router.push(...) |
router.replace( location ) - 새로운 히스토리 항목에 추가하지 않고 탐색
선언적 방식 | 프로그래밍 방식 |
---|---|
<router-link :to="..." replace> | router.replace(...) |
router.go(n) - window.history.go(n)와 비슷하게 히스토리 스택에서 앞으로 또는 뒤로 이동
axios
https://ryuzuka.github.io/VUE/tutorial/16_axios.html
HTTP 요청을 위한 axios
설치
axios
vuex (0) | 2019.02.24 |
---|---|
vue-router (0) | 2019.02.23 |
트랜지션 (0) | 2019.02.10 |
사용자 정의 디렉티브 (0) | 2019.02.09 |
믹스인 (0) | 2019.02.09 |