Home > Web Front-end > Vue.js > How vue.js implements mobile adaptation

How vue.js implements mobile adaptation

coldplay.xixi
Release: 2020-11-30 16:31:57
Original
3567 people have browsed it

Vue.js method to implement mobile terminal adaptation: 1. Use rem layout and add relevant JS code in the main entrance [index.html] and [

] tags; 2. Use [lib -flexible】plug-in implementation.

How vue.js implements mobile adaptation

The operating environment of this tutorial: windows7 system, vue2.9 version, this method is suitable for all brands of computers.

【Recommended related articles: vue.js

vue.js method to implement mobile adaptation:

1. Method 1: rem layout

Add the following JS code in the main entrance: index.html,

tag: (implemented under standard 375px width adaptation , 100px = 1rem.)
  <script>
    (function () {
      // 在标准 375px 适配下,100px = 1rem;
      var baseFontSize = 100;  
      var baseWidth = 375;
      var set = function () {
        var clientWidth = document.documentElement.clientWidth || window.innerWidth;
        var rem = 100;
        if (clientWidth != baseWidth) {
          rem = Math.floor(clientWidth / baseWidth * baseFontSize);
        }
        document.querySelector(&#39;html&#39;).style.fontSize = rem + &#39;px&#39;;
      }
      set();
      window.addEventListener(&#39;resize&#39;, set);
    }());
   
  </script>
Copy after login

2. Method 2: lib-flexible plug-in implementation

1. Install the plug-in

npm i lib-flexible --save        // 载lib-flexible
npm install px2rem-loader        // 安装px2rem-loader
Copy after login

2. In main Introduce lib-flexible

import &#39;lib-flexible/flexible&#39;
Copy after login

in .js 3. Add: mobile adaptation meta tag

<meta name="viewport" content="width=device-width,initial-scale=1.0">
//注意这两个的区别,建议添加下面的meta,反正点击输入框,页面自动缩放
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
Copy after login

in index.html 4. Change configuration

in build/util. js, make the following two changes

(1), add px2rem-loader to cssLoaders

const cssLoader = {
    loader: &#39;css-loader&#39;,
    options: {
      minimize: process.env.NODE_ENV === &#39;production&#39;,
      sourceMap: options.sourceMap
    }
  }
  const px2remLoader = {
    loader: &#39;px2rem-loader&#39;,
    options: {
      //一般设置75
      remUnit: 35
    }
  }
Copy after login

(2), add px2remLoader

  function generateLoaders(loader, loaderOptions) {
    const loaders = options.usePostCSS ? [cssLoader, postcssLoader,px2remLoader] : [cssLoader,px2remLoader]
    if (loader) {
      loaders.push({
        loader: loader + &#39;-loader&#39;,
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }
    // Extract CSS when that option is specified
    // (which is the case during production build)
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: &#39;vue-style-loader&#39;
      })
    } else {
      return [&#39;vue-style-loader&#39;].concat(loaders)
    }
  }
Copy after login

to the generateLoaders method. Summary: Modified places

How vue.js implements mobile adaptation

5. Restart

npm run dev // Rerun

Need to pay attention here:

1. lib-flexible: It is an adaptation plug-in for rem. (Example: 750px == 10rem)

2. px2rem-loader: For convenience when writing CSS, inputting px will automatically be converted to rem.

3. Sometimes when using the ‘px2rem-loader’ plug-in, it is found that the rem conversion is incorrect. It may be that the development tool has set up other plug-in conversions. Just set the other plug-in conversions to the desired conversion. [I have encountered it before, a huge pit. . . 】

Related free learning recommendations: JavaScript(Video)

The above is the detailed content of How vue.js implements mobile adaptation. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template