<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        詳解基于Vue/React項目的移動端適配方案

        來源:懂視網 責編:小采 時間:2020-11-27 21:52:03
        文檔

        詳解基于Vue/React項目的移動端適配方案

        詳解基于Vue/React項目的移動端適配方案:前言 本文的目標是通過下文介紹的適配方案,使用vue或react開發移動端及H5的時候,不需要再關心移動設備的大小,只需要按照固定設計稿的px值布局,提升開發效率。 下文給出了本人分別使用create-react-app搭建的react(create-react-app)項
        推薦度:
        導讀詳解基于Vue/React項目的移動端適配方案:前言 本文的目標是通過下文介紹的適配方案,使用vue或react開發移動端及H5的時候,不需要再關心移動設備的大小,只需要按照固定設計稿的px值布局,提升開發效率。 下文給出了本人分別使用create-react-app搭建的react(create-react-app)項

        前言

        本文的目標是通過下文介紹的適配方案,使用vue或react開發移動端及H5的時候,不需要再關心移動設備的大小,只需要按照固定設計稿的px值布局,提升開發效率。

        下文給出了本人分別使用create-react-app搭建的react(create-react-app)項目和使用vue-cli 2.x 搭建的vue項目中的 親測可用 配置方案。

        px2rem或postcss-px2rem

      1. 在移動端中,為了設配不同的設備,通常使用rem來做適配。
      2. rem是通過根元素進行適配的,網頁中的根元素指的是<html>,我們通過設置<html>的字體大小就可以控制 rem 的大?。?rem = 1根元素字體大?。?。
      3. 可見,只要我們根據不同屏幕(使用css媒體查詢或js)設定好根元素<html>的字體大小,其他已經使用了rem單位的元素就會自適應顯示相應的尺寸。
      4. 設計稿一般是按照一種特定設備型號(如iphone6)為基礎且以px單位來定義樣式,為了讓設計稿能夠通用在不同的設備型號中,則存在著從px到rem的繁瑣計算轉化過程,因此需要更加科學的方式來使用rem單位。
      5. px2rem或postcss-px2rem的原理:將css中px編譯為rem,配合js根據不同手機型號計算出dpr的值,修改<meta>的viewport值和置<html>的font-size。
      6. 項目中的使用

        recat項目配置postcss-px2rem

        首先,我們使用 react 的腳手架 create-react-app 初始化一個 webpack 項目(前提是已經安裝過create-react-app,具體不再闡述)。

        create-react-app my-app

        暴露webpack配置,即 react-scripts 包:

        yarn eject

        使用yarn 安裝項目所需依賴后,安裝 lib-flexible 、 postcss-px2rem 和 postcss-loader:

        yarn add postcss-px2rem lib-flexible 
        yarn add postcss-loader --dev

        在入口頁面 index.html 中設置<meta>標簽:

        <meta name="viewport" content="width=device-width,inital-scale=1.0,
         maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">

        然后在項目入口文件 index.js 中引入 lib-flexible:

        import 'lib-flexible';

        接著,在項目config目錄下的 webpack.config.js 中引入 postcss-px2rem :

        const px2rem = require('postcss-px2rem')

        同時,在 webpack.config.js 的 postcss-loader loader里面添加 :

        {
         loader: require.resolve('postcss-loader'),
         options: {
         /* 省略代碼... */
         plugins: () => [
         require('postcss-flexbugs-fixes'),
         require('postcss-preset-env')({
         autoprefixer: {
         flexbox: 'no-2009',
         },
         stage: 3,
         }),
         px2rem({remUnit: 37.5}), // 添加的內容
         /* 省略代碼... */
         ],
         sourceMap: isEnvProduction && shouldUseSourceMap,
         },
         },
        
        

        最后,使用 yarn start 重啟項目,則會發現項目中的postcss-px2rem配置完成。

        vue項目配置px2rem

        首先,我們使用 vue 的腳手架 vue-cli 初始化一個 webpack 項目(前提是已經安裝過vue-cli,具體不再闡述),一些選項根據自己項目需要選擇。

        vue init webpack my-app

        命令執行之后,會在當前目錄生成一個以“my-app”命名的項目文件夾。進入項目目錄:

        cd my-app

        使用yarn 安裝項目所需依賴后,安裝 lib-flexible 和  px2rem-loader:

        yarn add lib-flexible
        yarn add px2rem-loader --dev

        在入口頁面 index.html 中設置<meta>標簽:

        <meta name="viewport" content="width=device-width,inital-scale=1.0,
         maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
        
        

        然后在項目入口文件 main.js 中引入 lib-flexible:

        import 'lib-flexible/flexible.js';
        
        

        同時,在項目build目錄下的 utils.js 中,將px2rem-loader 添加到cssLoaders中。通過搜索找到 generateLoaders 方法,在這里添加:

        exports.cssLoaders = function (options) {
         /* 省略代碼塊 */
        
         const cssLoader = {
         /* 省略代碼塊 */
         }
        
         /* 添加的代碼塊 */
         const px2remLoader = {
         loader: 'px2rem-loader',
         options: {
         remUnit: 37.5 // 基準大小 baseSize,設計稿寬度/10
         }
         }
         /* 添加的代碼塊 */
         
         // generate loader string to be used with extract text plugin
         function generateLoaders (loader, loaderOptions) {
         const loaders = [cssLoader, px2remLoader] // 添加px2remLoader
         if (loader) {
         /* 省略代碼塊 */
         }
        
         /* 省略代碼塊 */
        }
        
        

        最后,使用 yarn dev 重啟項目,會發現自己設置的px被轉為rem 了。

        適用情況 & 不適用情況

        以上實現轉換適用于:
        (1)vue 組件中編寫的<style></style>下的css。
        (2)從 react 項目的 index.js 或者 vue 項目的 main.js 中通過import ‘../../static/css/reset.css'引入css。
        (3)在 vue 組件的<script type=”text/ecmascript-6″>import ‘../../static/css/reset.css'</script>中引入css。

        另外的情況不適用:
        (1)在 vue 組件的<style></style>中通過@import “../../static/css/reset.css (可考慮上面(2)、(3)的形式引入)。
        (2)外部樣式:<link rel=”stylesheet” href=”static/css/reset.css”>。
        (3)元素內部樣式:style="height: 417px; width: 550px;"。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳解基于Vue/React項目的移動端適配方案

        詳解基于Vue/React項目的移動端適配方案:前言 本文的目標是通過下文介紹的適配方案,使用vue或react開發移動端及H5的時候,不需要再關心移動設備的大小,只需要按照固定設計稿的px值布局,提升開發效率。 下文給出了本人分別使用create-react-app搭建的react(create-react-app)項
        推薦度:
        標簽: VUE 移動端 適配
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 91在线视频免费看| 久久ww精品w免费人成| 免费看大黄高清网站视频在线| 亚洲精品av无码喷奶水糖心| MM1313亚洲精品无码久久| 日批视频网址免费观看| JLZZJLZZ亚洲乱熟无码| 亚洲天堂免费在线视频| 亚洲免费人成视频观看| 亚洲伊人久久大香线蕉啊| 91情侣在线精品国产免费| 亚洲字幕AV一区二区三区四区| 狼色精品人妻在线视频免费| 亚洲精品一级无码中文字幕| 亚洲一区电影在线观看| 午夜不卡AV免费| 成全视频在线观看免费高清动漫视频下载| 亚洲国产中文在线视频 | 国产中文字幕在线免费观看| 国产AV无码专区亚洲AWWW | 成年网站免费入口在线观看| 在线观看亚洲成人| 2021国内精品久久久久精免费| 97久久国产亚洲精品超碰热| 国产成人AV片无码免费| 亚洲成a人在线看天堂无码| 中文字幕在线免费看| 亚洲成a人片在线观看国产| 成人久久免费网站| 亚洲91精品麻豆国产系列在线| 成人国产mv免费视频| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 亚洲AV成人精品网站在线播放| 亚洲人成在线免费观看| 黄页网站在线免费观看| 在线免费观看亚洲| 亚洲免费视频网站| 亚洲色成人四虎在线观看| 中文亚洲成a人片在线观看| 天堂亚洲免费视频| 久久精品亚洲综合一品|