Callback 구조

a( )실행에서 인수로 함수 b( ) 를 실행하는것을 넣어 function a 에서 callback으로 받는다 a함수가 정상적으로 실행된후 callback( )에 의해 function( ) {b( ) }가 작동되어 b함수가 실행된다.

promise - async/await

resolve( ) 가 완료되면 실행보장에 의해 다음것이 실행된다.

 

promise - then

함수 a ( ) 가 실행된 후 resolve( ) 가 끝이나면 then에 의해 'b'가 출력된다.
a( ) then 값을 b ( ) 의 리턴은 어차피 promise이므로 리턴된 promise에 다시 then을 해주는 과정이다.

catch와 finally

resolve와 reject 인자를 통해 a에 인수값이 4이상일시 reject되어 catch문이 실행되고 4이하일시 then문이 실행되어 마지막에 결과에 상관없이 최종 finally문이 실행된다.
async await를 적용하여 reject시 try전문이 실행되고 reject시 catch로 error인자를 받아 catch문이 실행된다.
try-resolve / catch-reject

parseInt는 type을 숫자로 바꿔주며 뒤 10을 통해 10진수로 바꾼다.

pageLength는 총 페이지 갯수로 1페이지당 10개의 movie가 있다.

Math.ceil은 올림처리의 기호이다.

기존 commit으로 updateState를 작동시켜 movies: Search를 넣을시

기존 movies가 덮어씌워지므로 전개연산자를 통해 actions에 state를 인자로 넣고

...state.moves, 에 ...Search를 추가할수 있도록 작성한다.

...state를 사용하기 위해 commite 처럼 action의 인자로 { state, commit}이 있어야한다.

npm i lodash 로 uniquBy를 사용 한다.

import _uniquBy from 'loadash/uniqBy' //lodash의 uniquBy만 사용선언

Search는 검색된 movie들이 여러개 들어있는 배열데이터인데 여기서 imdbID라는 값이 같은것들은 1개로만 만들어서 배열을 새로만들어낸다.

movie.js에 actions비동기를 search.vue에 검색버튼에 연결된 methods에 있던것을 가져와 옮긴다.

 

search.vue에서 methods의 내부 vuex(store) 실행 방법

movie.js의 mutations와 actions를 실행하는 방법
search.vue의 click으로 변수들 searchMovies로 보내기
search.vue에서 받은 변수들을 할당하고 movie.js에서 변경하게 해주는 유일한 mutations를 통해 search를 다시보내고 할당한다.

변이 mutations

Object.keys로 객체 이름들만으로 배열을 만들어냄
Movielist-MovieItem 간 props전달 구조

flex의 감소 비율을 없애기

flex-shrink:0

http 요청을 위한 패키지설치

npm i axios

 

버튼을 누를때만 비동기 처리

async-await

 

vuex(Store)

부모와 자식간에는 props를 사용해 데이터 전달

부모와 최하위 자식간에는 provide/inject 사용해 데이터 전달 가능

자식과 자식간에는 vuex(store)로 데이터중앙집권형으로 데이터 전달

 

1. 설치

npm i vuex@next

2. store폴더 내 index.js 생성으로 vuex의 설정파일 생성

3. main.js에 use로 연결import stroe 선언

4.stoe폴더 내 movie나 about .js 생성

movie.js 구조

5. index.js에서 movie나 about. js 에서 export defalut로 내보낸것을 import하여 사용 선언

V-model $data 점표기법 연결

$data.type = $data[filter.name] =$data['type']

 

 

year부분 value가 없을시

data()에서 year: " "으로 값이없으니 option을 추가하여 value=" "으로 연동된다. value=""와 option사이 값을 주는것은 같다.

 

value=""와 option사이 값을 주는것은 같다.

'Vue' 카테고리의 다른 글

vuex로 영화검색 1  (0) 2021.08.18
http요청의 axios, 비동기처리 async-await, vuex개요  (0) 2021.08.18
Logo와 bootstrap_container  (0) 2021.08.17
header 탭 만들기  (0) 2021.08.16
페이지 router이동연결, bootstrap-scss 커스텀  (0) 2021.08.16

Logo 만들기

RouterLink

 

inner처럼 가운데 bootstrap을 통해 정렬하기

bootstrap의 container 사용

1. navigations로 nav태그들을 나열하기 위해 Search, Movie, About을 만들고 href로 주소도 배치한다.

2. 나열될 div에 v-for로 나열시키고 RouterLink에 :to로 href를 할당한다.

3. bootstrap처럼 버튼을 누를시 active가 되는것을 위해 active-class="active"로 하고 nav-pills로 bootstrap 양식을 맞춘다.

4. App.vue에 Header로 선언한다.

페이지 라우터 이동 연결 설정

1. npm install vue-router@4 설치

2. main.js 설정

import router from './routes/index.js' //import 추가

createApp(App).use(router).mount('#app') //.use(router)추가

3. index.js 설정import { createRouter, createWebHashHistory } from 'vue-router'

 

export default createRouter({history: createWebHashHistory(),routes:[{ path:'/'. //주소 뒤 경로 component:'' //Router폴더안에 있는 vue파일을 연결}]})

 

index.js 내부routes-component 설정하는법

import선언후 routes에 path와 component에 작성
main.js에서 createApp에 use로 router을 연결했으니 app.vue에 RouterView

 

bootstrap 커스텀하기-scss

1. npm install bootstrap@next로 최신 bootstrap설치

2. main.scss 선언

@import "../../node_modules/bootstrap.scss/bootstrap.scss

3. 적용할 vue에 scss 선언

<style lang="scss">

@import "~scss/main";

</style>

4. main.scss에서 custom진행

$primary: #FDC000;

@import "../../node_modules/bootstrap/scss/functions"; //위 커스텀 적용후 import

@import "../../node_modules/bootstrap/scss/variables"; //위 커스텀 적용후 import

@import "../../node_modules/bootstrap/scss/mixins"; //위 커스텀 적용후 import

!default값이 있을시 별도로 커스텀하여 import시 적용됨 / 없을시 기본값 $blue만 가능

'Vue' 카테고리의 다른 글

Logo와 bootstrap_container  (0) 2021.08.17
header 탭 만들기  (0) 2021.08.16
props와 context로 setup 수정하기  (0) 2021.08.13
ref로 데이터 반응성만들기, App.composition으로 변경해보기  (0) 2021.08.13
이벤트 상속 과 Refs  (0) 2021.08.13

props와 context로 setup 수정하기

ref로 데이터를 반응성있게 만들기

반환할때는 굳이 count.value로 쓸필요없다.

App.composition으로 변경해보기

+ Recent posts