vue-cli中實(shí)現(xiàn)響應(yīng)式布局的方法
我們在進(jìn)行前端開發(fā)中必然會(huì)遇到PC與移動(dòng)端的適配,面對(duì)這樣的問題有些公司會(huì)準(zhǔn)備兩個(gè)頁面,移動(dòng)是移動(dòng),PC是PC,而響應(yīng)式布局就是根據(jù)用戶不同的機(jī)型展示不同的頁面,廢話不多說,直接貼代碼
首先我們這個(gè)功能是借助vuex實(shí)現(xiàn)的,沒下載的小伙伴可以先下一個(gè)
yarn add vuex
既然是響應(yīng)式布局就要準(zhǔn)備兩套css,一個(gè)是PC端的css,一個(gè)是移動(dòng)端的css,我們暫且將PC端的樣式稱為computer,移動(dòng)端的樣式稱為mobile
我們首先要做的就是當(dāng)前屏幕的寬度
state: { screenWidth: document.documentElement.clientWidth, screenHeight: document.documentElement.clientHeight }
這是vuex的state,我們后續(xù)還要實(shí)時(shí)監(jiān)控屏幕寬度,所以還需要提供一個(gè)改變screenWidth的方法,于是我又寫了一mutations
mutations: { setWidth (state, value) { state.screenWidth = value }, setHeight (state, value) { state.screenHeight = value } }
這樣我們的vuex的文件就寫好了,而后就是APP.vue,我們需要在這個(gè)文件下添加一個(gè)window.onresize事件實(shí)時(shí)更新vuex中的screenWidth值,在這里我們使用了輔助函數(shù)
import { mapState, mapMutations } from 'vuex'
在mounted鉤子函數(shù)中添加事件
mounted () { window.onresize = () => { this.setWidth(document.documentElement.clientWidth) } }
這樣好比說我們網(wǎng)頁中的導(dǎo)航,移動(dòng)端時(shí)我們需要它在底部,PC端時(shí)我們需要它在頂部,這樣我們就可以在nav.vue這個(gè)組件中用watch或computed監(jiān)聽screenWidth的值,這里我們用的是computed
<ul :class="computedPhone">//根據(jù)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">個(gè)人中心</router-link> </ul>
computed: { ...mapState('stylesheet', ['screenWidth']), computedPhone () { if (this.screenWidth < 1024) { return 'mobile' } else { return 'computer' } } }
這樣只要寫好兩套css就可以實(shí)現(xiàn)響應(yīng)式布局了
到此這篇關(guān)于vue-cli中實(shí)現(xiàn)響應(yīng)式布局的方法的文章就介紹到這了,更多相關(guān)vue-cli 響應(yīng)式布局內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue v-viewer組件使用示例詳解(v-viewer輪播圖)
這篇文章主要介紹了vue v-viewer組件使用示例詳解(v-viewer輪播圖),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02el-table表格動(dòng)態(tài)合并行及合并行列實(shí)例詳解
在使用el-table的時(shí)候經(jīng)常會(huì)涉及到表格的列合并,包括表格操作列的合并,下面這篇文章主要給大家介紹了關(guān)于el-table表格動(dòng)態(tài)合并行及合并行列的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10vue-router+vuex addRoutes實(shí)現(xiàn)路由動(dòng)態(tài)加載及菜單動(dòng)態(tài)加載
本篇文章主要介紹了vue-router+vuex addRoutes實(shí)現(xiàn)路由動(dòng)態(tài)加載及菜單動(dòng)態(tài)加載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09Vue3+Vite如何解決“找不到模塊“@/components/xxx.vue”或其相應(yīng)的類型聲明ts(2307)”
在Vue項(xiàng)目中使用Vite時(shí),可能因版本差異而需修改tsconfig.app.json而非tsconfig.json以解決編譯錯(cuò)誤,本文分享個(gè)人解決經(jīng)驗(yàn),供參考2024-10-10VUE DEMO之模擬登錄個(gè)人中心頁面之間數(shù)據(jù)傳值實(shí)例
今天小編就為大家分享一篇VUE DEMO之模擬登錄個(gè)人中心頁面之間數(shù)據(jù)傳值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10vue使用vue-json-viewer展示JSON數(shù)據(jù)的詳細(xì)步驟
最近在開發(fā)一個(gè)公司的投放管理系統(tǒng)的操作日志模塊,要查看某條操作日志的請(qǐng)求參數(shù),要將請(qǐng)求的參數(shù)以JSON格式的形式展示出來,下面這篇文章主要給大家介紹了vue使用vue-json-viewer展示JSON數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-09-09