vue-cli에서 응답식 레이아웃을 실현하는 방법
우선 우리의 이 기능은 vuex를 빌려 이루어진 것입니다. 다운로드하지 않은 파트너가 먼저 다음
yarn add vuex
응답식 레이아웃이라면 두 세트의 css를 준비해야 한다. 하나는 PC 쪽의 css이고, 하나는 이동 쪽의 css이다. 우리는 잠시 PC 쪽의 스타일을 컴퓨터라고 하고, 이동 쪽의 스타일을 모바일이라고 부른다.저희가 먼저 해야 할 게 현재 화면의 너비예요.
state: {
screenWidth: document.documentElement.clientWidth,
screenHeight: document.documentElement.clientHeight
}
이것은 vuex의state입니다. 우리는 다음에 화면의 폭을 실시간으로 감시해야 하기 때문에 screenWidth를 바꾸는 방법을 제공해야 합니다. 그래서 저는 mutations를 썼습니다.
mutations: {
setWidth (state, value) {
state.screenWidth = value
},
setHeight (state, value) {
state.screenHeight = value
}
}
이렇게 하면 우리의 vuex 파일은 다 썼고, 그 다음은 APP이다.vue, 이 파일에 윈도우를 추가해야 합니다.onresize 이벤트는 vuex의 screenWidth 값을 실시간으로 업데이트합니다. 여기서 보조 함수를 사용했습니다.
import { mapState, mapMutations } from 'vuex'
mounted 갈고리 함수에 이벤트 추가
mounted () {
window.onresize = () => {
this.setWidth(document.documentElement.clientWidth)
}
}
이것은 마치 우리 웹 페이지의 내비게이션과 같다. 이동할 때 우리는 그것을 밑에 필요로 하고, PC할 때 우리는 그것을 정상에 필요로 한다. 그러면 우리는nav에 있을 수 있다.vue 이 구성 요소에서watch나computed로 screenWidth의 값을 감청합니다. 여기에서는computed를 사용합니다.
<ul :class="computedPhone">// screenWidth class
<router-link to='/file' tag="li" active-class="active"> </router-link>
<router-link to='/cinma' tag="li" active-class="active"> </router-link>
<router-link to='/center' tag="li" active-class="active"> </router-link>
</ul>
computed: {
...mapState('stylesheet', ['screenWidth']),
computedPhone () {
if (this.screenWidth < 1024) {
return 'mobile'
} else {
return 'computer'
}
}
}
이렇게 하면 css 두 세트만 쓰면 응답식 레이아웃을 실현할 수 있다vue-cli에서 응답식 레이아웃을 실현하는 방법에 대한 이 글은 여기까지 소개되었습니다. 더 많은 vue-cli 응답식 레이아웃 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Vue.js】Xserver에 Vue CLI로 만든 초간이 페이지를 배포해 보았다.Vue CLI를 사용한 포트폴리오 제작은 처음이었기 때문에, 일단 제작에 착수하기 전에 배포가 가능한지 시도해 보았습니다. (모처럼 만들었는데 배포할 수 없다니 된다면 너무 슬프니까...웃음) 결론, 비교적 간단하게...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.