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으로 변경해보기

이벤트 상속

부모의 heropy 로직을 emits: [ ] 에 저장하고 $emit으로 불러와 click시 부모의 log를 실행한다.

 

refs

template안에 tag에 ref를 주고 export에서 $refs. ref명 으로 호출하면 document.queryselector처럼 태그의 값만 나오게된다
외부 vue의 태그 값을 찾을시 $refs.ref명.$el로 최상위 태그 값을 가져오고 태그값이 여러개일시 외부 vue의 찾을 태그에 ref를 다시주어 검색한다.

@click.prevent="handler"

.prevent 는 태그동작만 막는다.

.once 는 console동작을 1회만 한다.

 

@click.stop 은 곂치는요소중 .stop이 적용된 요소만 작동된다.

@click.capture // 부모요소에 적용 // 곂치는요소 누를시 부모요소(뒤) 먼저 작동후 자식요소(앞)가 작동된다.

@click.self 는 해당하는 영역이며 자기가 노출되는 영역만 정확하게 작동한다.

 

@wheel.passive 는 부하를 줄이기 위해 스크롤과 로직을 따로 처리해준다.

 

@keydown 은 뒤에 .키를 통해 키가 입력되면 작동된다.

event.key에 입력된 값이 저장되고 그값이 눌리면 작동되게된다.

 

폼입력바인딩

 단방향 데이터 바인딩 구조
양방향 데이터 바인딩 구조
양방향 바인딩 v-model은 input값에 들어온값을 뒤에 변수에 할당시킨다.

 

# v-model="msg"는 입력값이 영어에서는 잘되나 모음,자음을 합치는 한글의 경우 기존방식인

{ :value="msg"

  @input="msg=$event.target.value" }를 사용해야한다.

 

v-model 수식어

 v-model.lazy="msg" 와 @change='msg=$event.target.value' 가 같은것

 v-model.trim  앞,뒤 띄어쓰기를 삭제하고 저장한다.

 

컴포넌트

props를 통해 color라고 외부에서 받을수있는 type은 스트링 기본값은 gray인 color을만들어놓는다.
class를 props로 생성하여 삽입할때 :class="{ 클래스명 }" <slot></slot>은 text값으로 사용될 수있다.
부모 vue에서 class나 style이 자식template에 있는 최상위 태그1개에만 적용되므로 inheritAttre를 false를 통해 상속을 거부하고 필요한 요소만 $attrs를 통해 상속하거나 v-bind="$attrs"로 원하는 태그에 전체 상속을 해줄수있다.

 

+ Recent posts