Vue的移动端应用环境搭建

1、安装webpack

npm install webpack -g


2、安装Cli

npm install -g @vue/cli


2、创建项目

cd到项目文件夹下

vue init webpack 项目名

项目名小写不要驼峰不要大写,可用 - 间隔单词

创建成功后运行下看看

cd 项目名

npm run dev

成功后,网页打开http://localhost:8080,看到欢迎页。


3、webstorm打开工程,开始配置。

设置运行命令快捷按钮,顶部工具栏Add Configuration... > + > npm > Scriptes里填dev > OK

点绿色运行按钮,运行成功。


4、配置ESlint警告和报错


5、Vuex(状态管理)

安装

npm install vuex --save

在main.js里引入

import Vuex from 'vuex'

Vue.use(Vuex)


6、Axios(数据请求模块)

安装

npm install axios js-cookie --save

添加api(请求模块)、apiconfig(公共请求封装)文件夹

在apiconfig里创建index.js文件,内容如下,里面按需配置(如请求成功、数据格式等)

/* eslint-disable */

import axios from 'axios'

/**

* 定义请求常量

*/

export const baseUrl = "http://192.168.1.220:8001/api/update.ashx";

// 请求超时时间

axios.defaults.timeout = 2000;

// 请求拦截

axios.interceptors.request.use(

  config => {

    // 在发送请求之前做些什么

    return config

  },

  error => {

    // 对请求错误做些什么

    return Promise.reject(error)

  }

)

// 响应拦截

axios.interceptors.response.use(

  response  => {

    // 对响应数据做点什么

    let {data} = response;

    if(response.config.url == baseUrl){

      return Promise.resolve(data.result);

    }else if(!data.Result){

      // 服务器错误处理

      return Promise.reject(data.Message);

    }else{

      return Promise.resolve(data.Data);

    }

  },

  error => {

    // 对响应错误做点什么

    return Promise.reject(error)

  }

)

// 封装post请求

export function fetch(requestUrl, params = '') {

  return axios({

    url: requestUrl,

    method: 'post',

    data: {

      'body': params

    }

  })

}

为了在使用的文件中简写apiconfig和api文件地址,在build/webpack.base.conf.js的resolve.alias添加代码

'config': resolve('src/apiconfig'),//添加的代码

'api': resolve('src/api'),//添加的代码

跨域问题在config/index.js中配置

assetsSubDirectory: 'static',

assetsPublicPath: '/',

proxyTable: {

    '/root/':{target: 'http://xxx'} //添加的代码

},


7、Less

安装

npm install less less-loader --save-dev

配置

在build/webpack.base.conf.js 的module.exports.module.rules 里面添加

{

    test: /\.less$/,

    loader: 'style-loader!css-loader!less-loader',

}


8、移动端适配

(1)flexible

安装

npm i lib-flexible --save

在main.js里引入

import 'lib-flexible/flexible'

(2)px2rem-loader

安装

npm install px2rem-loader

配置,在build/util.js里修改

// 添加的代码

    const px2remLoader = {

        loader: 'px2rem-loader',

        options: {

          remUnit: 75 // 这里设置html根字体,vant-UI的官方根字体大小是37.5

        }

    }

    // generate loader string to be used with extract text plugin

    function generateLoaders (loader, loaderOptions) {

        const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader, px2remLoader]// 添加的代码

        if (loader) {

            loaders.push({

                loader: loader + '-loader',

                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: 'vue-style-loader'

            })

        } else {

            return ['vue-style-loader'].concat(loaders)

        }

    }


9、UI框架,Vant

安装

npm i vant -S

在main.js里添加

import Vant from 'vant';

import 'vant/lib/index.css';

Vue.use(Vant)


10、页面切换


11、其他优化

(1)fastclick,解决点击事件300ms延迟

安装

npm install fastclick --save

在main.js中引入

import FastClick from 'fastclick'

FastClick.attach(document.body)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342