美文网首页Vue
第8章 Vue项目预热

第8章 Vue项目预热

作者: 读书的鱼 | 来源:发表于2019-05-17 08:25 被阅读81次
    8-1.NodeJS安装
    //验证node和npm 是否安装 以及安装的版本
    node -v
    npm -v
    

    根据自己电脑是什么系统去安装:NodeJS安装

    8-2.vue脚手架安装
    //电脑全局安装
    npm install --global vue-lci
    
    //a. 实例出一个项目
    vue init webpack vue-travel //vue-travel 名称自己定义
    
    //b. 如果你本地有一个git项目了,你想把这个vue脚手架放入到这个项目中
    vue init webpack git-project //git-project  本地git项目名称
    
    8-3.运行脚手架项目
    cd vue-travel  //or  cd git-project 
    npm run dev //or   npm start
    

    浏览器访问localhost:8080即可

    8-4.如何更改端口号

    项目config文件件,我们打开其目录下的index.js,就是端口号的最终设置的地方:

    dev: {
        // Paths
        assetsSubDirectory: 'static',
        assetsPublicPath: '/',
        proxyTable: {},
    
        // Various Dev Server settings
        host: 'localhost', // can be overwritten by process.env.HOST
        port: 8081, //在这个地方进行端口号的更改
        autoOpenBrowser: false,
        errorOverlay: true,
        notifyOnErrors: true,
        poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
        .....
    }
    
    8-5.如何通过ip来访问我们的网站呢
    http://localhost:8080
    http://127.0.0.1:8080
    http://自己电脑ip:8080 //如果手机和电脑在同一个网段,手机可以联调项目,查看手机效果
    

    第一种方法修改:package.json文件
    在dev 命令里面添加 --host 0.0.0.0

    "scripts": {
        "dev": "webpack-dev-server --host 0.0.0.0 --inline --progress --config build/webpack.dev.conf.js",
        "start": "npm run dev",
        "lint": "eslint --ext .js,.vue src",
        "build": "node build/build.js"
      },
    

    第二种方法修改:config/index.js文件

    dev: {
        // Paths
        assetsSubDirectory: 'static',
        assetsPublicPath: '/',
        proxyTable: {},
    
        // Various Dev Server settings
        host: '0.0.0.0', // 修改这个地方 将localhost 改为 0.0.0.0
        port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
        autoOpenBrowser: false,
        errorOverlay: true,
        notifyOnErrors: true,
        poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
        ......
    }
    

    重启 npm run dev 或者npm start

    区别:
    修改package.json 之后的结果(和之前没有什么区别):
    Your application is running here: http://localhost:8080
    修改config/index.js文件 之后的运行结果:
    Your application is running here: http://0.0.0.0:8080

    所以我推荐 方法一(纯粹个人意见)

    8-6.Vue 项目初始化的准备工作

    因为是手机端的vue项目,所以项目index.html 我们要设置一下
    1.禁止缩放

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

    2.reset.css

    @charset "utf-8";html{background-color:#fff;color:#000;font-size:12px}
    body,ul,ol,dl,dd,h1,h2,h3,h4,h5,h6,figure,form,fieldset,legend,input,textarea,button,p,blockquote,th,td,pre,xmp{margin:0;padding:0}
    body,input,textarea,button,select,pre,xmp,tt,code,kbd,samp{line-height:1.5;font-family:tahoma,arial,"Hiragino Sans GB",simsun,sans-serif}
    h1,h2,h3,h4,h5,h6,small,big,input,textarea,button,select{font-size:100%}
    h1,h2,h3,h4,h5,h6{font-family:tahoma,arial,"Hiragino Sans GB","微软雅黑",simsun,sans-serif}
    h1,h2,h3,h4,h5,h6,b,strong{font-weight:normal}
    address,cite,dfn,em,i,optgroup,var{font-style:normal}
    table{border-collapse:collapse;border-spacing:0;text-align:left}
    caption,th{text-align:inherit}
    ul,ol,menu{list-style:none}
    fieldset,img{border:0}
    img,object,input,textarea,button,select{vertical-align:middle}
    article,aside,footer,header,section,nav,figure,figcaption,hgroup,details,menu{display:block}
    audio,canvas,video{display:inline-block;*display:inline;*zoom:1}
    blockquote:before,blockquote:after,q:before,q:after{content:"\0020"}
    textarea{overflow:auto;resize:vertical}
    input,textarea,button,select,a{outline:0 none;border: none;}
    button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}
    mark{background-color:transparent}
    a,ins,s,u,del{text-decoration:none}
    sup,sub{vertical-align:baseline}
    html {overflow-x: hidden;height: 100%;font-size: 50px;-webkit-tap-highlight-color: transparent;}
    body {font-family: Arial, "Microsoft Yahei", "Helvetica Neue", Helvetica, sans-serif;color: #333;font-size: .28em;line-height: 1;-webkit-text-size-adjust: none;}
    hr {height: .02rem;margin: .1rem 0;border: medium none;border-top: .02rem solid #cacaca;}
    a {color: #25a4bb;text-decoration: none;}
    

    在我们项目assets文件下面
    创建styles文件
    在styles文件下面添加reset.css
    最后在项目的main.js引入reset.css

    import './assets/styles/reset.css'
    

    3.border.css
    解决1px边框问题

    @charset "utf-8";
    .border,
    .border-top,
    .border-right,
    .border-bottom,
    .border-left,
    .border-topbottom,
    .border-rightleft,
    .border-topleft,
    .border-rightbottom,
    .border-topright,
    .border-bottomleft {
        position: relative;
    }
    .border::before,
    .border-top::before,
    .border-right::before,
    .border-bottom::before,
    .border-left::before,
    .border-topbottom::before,
    .border-topbottom::after,
    .border-rightleft::before,
    .border-rightleft::after,
    .border-topleft::before,
    .border-topleft::after,
    .border-rightbottom::before,
    .border-rightbottom::after,
    .border-topright::before,
    .border-topright::after,
    .border-bottomleft::before,
    .border-bottomleft::after {
        content: "\0020";
        overflow: hidden;
        position: absolute;
    }
    /* border
     * 因,边框是由伪元素区域遮盖在父级
     * 故,子级若有交互,需要对子级设置
     * 定位 及 z轴
     */
    .border::before {
        box-sizing: border-box;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        border: 1px solid #eaeaea;
        transform-origin: 0 0;
    }
    .border-top::before,
    .border-bottom::before,
    .border-topbottom::before,
    .border-topbottom::after,
    .border-topleft::before,
    .border-rightbottom::after,
    .border-topright::before,
    .border-bottomleft::before {
        left: 0;
        width: 100%;
        height: 1px;
    }
    .border-right::before,
    .border-left::before,
    .border-rightleft::before,
    .border-rightleft::after,
    .border-topleft::after,
    .border-rightbottom::before,
    .border-topright::after,
    .border-bottomleft::after {
        top: 0;
        width: 1px;
        height: 100%;
    }
    .border-top::before,
    .border-topbottom::before,
    .border-topleft::before,
    .border-topright::before {
        border-top: 1px solid #eaeaea;
        transform-origin: 0 0;
    }
    .border-right::before,
    .border-rightbottom::before,
    .border-rightleft::before,
    .border-topright::after {
        border-right: 1px solid #eaeaea;
        transform-origin: 100% 0;
    }
    .border-bottom::before,
    .border-topbottom::after,
    .border-rightbottom::after,
    .border-bottomleft::before {
        border-bottom: 1px solid #eaeaea;
        transform-origin: 0 100%;
    }
    .border-left::before,
    .border-topleft::after,
    .border-rightleft::after,
    .border-bottomleft::after {
        border-left: 1px solid #eaeaea;
        transform-origin: 0 0;
    }
    .border-top::before,
    .border-topbottom::before,
    .border-topleft::before,
    .border-topright::before {
        top: 0;
    }
    .border-right::before,
    .border-rightleft::after,
    .border-rightbottom::before,
    .border-topright::after {
        right: 0;
    }
    .border-bottom::before,
    .border-topbottom::after,
    .border-rightbottom::after,
    .border-bottomleft::after {
        bottom: 0;
    }
    .border-left::before,
    .border-rightleft::before,
    .border-topleft::after,
    .border-bottomleft::before {
        left: 0;
    }
    @media (max--moz-device-pixel-ratio: 1.49), (-webkit-max-device-pixel-ratio: 1.49), (max-device-pixel-ratio: 1.49), (max-resolution: 143dpi), (max-resolution: 1.49dppx) {
        /* 默认值,无需重置 */
    }
    @media (min--moz-device-pixel-ratio: 1.5) and (max--moz-device-pixel-ratio: 2.49), (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 2.49), (min-device-pixel-ratio: 1.5) and (max-device-pixel-ratio: 2.49), (min-resolution: 144dpi) and (max-resolution: 239dpi), (min-resolution: 1.5dppx) and (max-resolution: 2.49dppx) {
        .border::before {
            width: 200%;
            height: 200%;
            transform: scale(.5);
        }
        .border-top::before,
        .border-bottom::before,
        .border-topbottom::before,
        .border-topbottom::after,
        .border-topleft::before,
        .border-rightbottom::after,
        .border-topright::before,
        .border-bottomleft::before {
            transform: scaleY(.5);
        }
        .border-right::before,
        .border-left::before,
        .border-rightleft::before,
        .border-rightleft::after,
        .border-topleft::after,
        .border-rightbottom::before,
        .border-topright::after,
        .border-bottomleft::after {
            transform: scaleX(.5);
        }
    }
    @media (min--moz-device-pixel-ratio: 2.5), (-webkit-min-device-pixel-ratio: 2.5), (min-device-pixel-ratio: 2.5), (min-resolution: 240dpi), (min-resolution: 2.5dppx) {
        .border::before {
            width: 300%;
            height: 300%;
            transform: scale(.33333);
        }
        .border-top::before,
        .border-bottom::before,
        .border-topbottom::before,
        .border-topbottom::after,
        .border-topleft::before,
        .border-rightbottom::after,
        .border-topright::before,
        .border-bottomleft::before {
            transform: scaleY(.33333);
        }
        .border-right::before,
        .border-left::before,
        .border-rightleft::before,
        .border-rightleft::after,
        .border-topleft::after,
        .border-rightbottom::before,
        .border-topright::after,
        .border-bottomleft::after {
            transform: scaleX(.33333);
        }
    }
    

    在main.js文件下面

    import './assets/styles/border.css'
    

    4.fastclick 解决300毫秒点击延迟问题
    在main.js文件下面

    import fastClick from 'fastclick'
    fastClick.attach(document.body)
    

    如果想预览项目整体的效果和配置项git地址:
    https://github.com/fx35792/vue-travel

    更多

    上一篇:第7章 Vue 路由
    下一篇:第9章 Vue项目开发之首页
    全篇文章:Vue学习总结
    所有章节目录:Vue学习目录

    相关文章

      网友评论

        本文标题:第8章 Vue项目预热

        本文链接:https://www.haomeiwen.com/subject/aobiaqtx.html