基于Vue2的移动端开发环境搭建详解


Posted in Javascript onNovember 03, 2016

前言

vue2.0发布了,那么还在用vue1.x的你,是不是也有所心动呢?下面这篇文章就给大家详细介绍基于Vue2的移动端开发环境搭建的详细步骤,下面来一起看看吧。

一、vue-cli

首先还是介绍我们的脚手架工具,因为它能让我们省去大部分的配置时间,这里只给出简单步骤,保证你的命令顺利运行的前提是安装最新版本的 node 和 npm,这里不赘述升级流程

全局安装 vue-cli

npm install vue-cli -g

借此也全局安装一个 webpack

npm install webpack -g

注意这里可能会有坑,墙内的用户安装失败,没关系,我们先安装淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

然后通过以下命令安装 webpack

cnpm install webpack -g

注:下面 orange 默认给出 npm 的安装方案,安装失败请自行转为 cnpm 安装

在需要创建工程的位置运行

vue init webpack-simple 工程名字<工程名字不能用中文>

或者创建 vue1.0 的项目,只需将命令换成

vue init webpack-simple#1.0

这里我们基于 2.x 开发的,直接使用第一种方法创建工程即可,下图是创建工程时的截图,需要你添加 Project nameProject descriptionAuthor.

基于Vue2的移动端开发环境搭建详解

图中已经给出下一步应该操作的步骤,我们按照步骤一步一步执行,这里 orange 不给大家一步一步列出。

注意:这里一定要使用 npm install 安装官方库,而不要使用淘宝镜像,会导致部分依赖丢失。
安装完成后,目录如下图。

基于Vue2的移动端开发环境搭建详解

然后我们运行我们的项目后浏览器会自动弹出,并展示以下页面

基于Vue2的移动端开发环境搭建详解

这里注意观察,默认给我们八个链接,可以根据这几个链接获得我们想要的学习资源,上面是必要的的链接(官方文档以及关注 vue 动态),下面是 vue 的生态系统,大家亲切的叫它们为全家桶。

二、Vue 全家桶

我们接下来介绍全家桶的安装(使用详情大家可以去初始页面的链接查看)

一句命令搞定全家桶

npm install vue-router vue-resource vuex --save

package.json 已经加入了我们的全家桶,node_modules 目录下也有对应的依赖包,注意这里现在还不能用扩展之后的方法,因为我们没引入到项目中来。

src/main.js 修改如下

import Vue from 'vue'
import VueResource from 'vue-resource'
import VueRouter from 'vue-router'
import Vuex from 'vuex'

import App from './App.vue'

Vue.use(VueResource)
Vue.use(VueRouter)
Vue.use(Vuex)

new Vue({
 el: '#app',
 render: h => h(App)
})

这时我们的项目就能运行对应的扩展方法了

三、集成 Sass

作为移动端的开发怎么能缺少 css 预编译语言。sass 安装需要几个依赖。

我们干脆在 package.json 把版本写死,然后通过 npm install 安装

"devDependencies": {} 中添加下面几个依赖

"node-sass": "^3.8.0",
"sass": "^0.5.0",
"sass-loader": "^4.0.0",

好,我们 npm install 后,就可以正式使用 sass 啦

四、目录结构建议

依赖的安装到这里差不多结束了,其它大家需要的可以自定义安装

下面给出我的目录建议供大家参考,

基于Vue2的移动端开发环境搭建详解

这里的 img 目录放置图片,script 目录放置公共的工具函数,style 目录放置我们的 sass 文件,

你查看 App.vue 文件时不难发现,默认的把样式文件给到了模块里,这样样式一直跟着模块

orange 建议大家不要这样做,因为这样十分不利于样式的模块化,注意区分与模版模块化的区别,

我们单独设置 style 目录,并在目录当中对 sass 进行模块化处理(通过 import 引入 sass 模块)

对应的 App.vue 也变得非常简洁,代码如下

<style lang="sass">
 @import "/style/base.scss";
</style>

五、rem 适配

对于移动端的开发,rem 适配必不可少,我们可以用多种方式实现,下面给出一种方案

在 index.html 中添加如下代码

<script>
 let html = document.documentElement;

 window.rem = html.getBoundingClientRect().width / 16 ;
 html.style.fontSize = window.rem + 'px';
</script>

这里基于宽 320px 的屏幕分成了 16 份,也就是 1rem = 20px,目前大多数设计稿都是根据 iphone6 的宽( 375px )走的,建议大家在这里分成 25 份,也就是 1rem = 15px,计算起来方便些。

简单说下 rem 原理:根据 html 的 fontSize 属性值为基准,其它所有的 rem 值,根据这个基准计算。

我们根据屏幕宽度用 js 动态修改了 html 的 fontSize 属性值,达到移动端适配的目的

总结

以上就是这篇文章的全部内容了,本文作为移动端配置的基础篇,深入了解框架后才能继续构建网站,希望这是一个好的开始,有了这个架子再填充代码就方便了许多,不用再去考虑开发环境问题了。希望本文的内容对有需要的朋友们能有所帮助。

Javascript 相关文章推荐
jquery中ajax调用json数据的使用说明
Mar 17 Javascript
用Juery网页选项卡实现代码
Jun 13 Javascript
javascript代码编写需要注意的7个小细节小结
Sep 21 Javascript
javascript几个易错点记录
Nov 26 Javascript
jQuery实用技巧必备(上)
Nov 02 Javascript
Angularjs中使用Filters详解
Mar 11 Javascript
浅谈javascript中的加减时间
Jul 12 Javascript
微信小程序 页面跳转传值实现代码
Jul 27 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 Javascript
vue项目中跳转到外部链接的实例讲解
Sep 20 Javascript
JS实现扫码枪扫描二维码功能
Jan 03 Javascript
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
AngularJS控制器之间的通信方式详解
Nov 03 #Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 #Javascript
AngularJS创建自定义指令的方法详解
Nov 03 #Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
Nov 03 #Javascript
3种不同的ContextMenu右键菜单实现代码
Nov 03 #Javascript
利用纯Vue.js构建Bootstrap组件
Nov 03 #Javascript
jQuery下拉菜单的实现代码
Nov 03 #Javascript
You might like
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
vue基础之模板和过滤器用法实例分析
2019/03/12 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
python实现list由于numpy array的转换
2018/04/04 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
python处理“
2019/06/10 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
基于python实现雪花算法过程详解
2019/11/16 Python
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
整改报告格式
2014/11/06 职场文书
六年级学生评语大全
2014/12/26 职场文书
大学生操行评语大全
2014/12/31 职场文书
支行行长岗位职责
2015/02/15 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
通讯稿范文
2015/07/22 职场文书
公司保密管理制度
2015/08/04 职场文书