从零构建vue2 + vue-router + vuex 开发环境到入门,实现基本的登录退出功能
发布于 8 年前 作者 1340641314 8790 次浏览 来自 分享

前言

vue2正式版已经发布将近一个月了,
国庆过后就用在了公司的两个正式项目上,
还有一个项目下个月也会采用vue2进行重构
选择它没什么理由,如果非要说一个理由
那就是它的中文文档远比react,angularjs要友好

github:https://github.com/lzxb/vue2-demo

源码说明

项目目录说明

.
|-- config                           // 项目开发环境配置
|   |-- index.js                     // 项目打包部署配置
|-- src                              // 源码目录
|   |-- components                   // 公共组件
|       |-- header.vue               // 页面头部公共组件
|       |-- index.js                 // 加载各种公共组件
|   |-- config                       // 路由配置和程序的基本信息配置
|       |-- routes.js                // 配置页面路由
|   |-- css                          // 各种css文件
|       |-- common.css               // 全局通用css文件
|   |-- iconfont                     // 各种字体图标
|   |-- images                       // 公共图片
|   |-- less                         // 各种less文件
|       |-- common.less              // 全局通用less文件
|   |-- pages                        // 页面组件
|       |-- home                     // 个人中心
|       |-- index                    // 网站首页
|       |-- login                    // 登录
|       |-- signout                  // 退出
|   |-- store                        // vuex的状态管理
|       |-- index.js                 // 加载各种store模块
|       |-- user.js                  // 用户store
|   |-- template                     // 各种html文件
|       |-- index.html               // 程序入口html文件
|   |-- util                         // 公共的js方法,vue的mixin混合
|   |-- app.vue                      // 页面入口文件
|   |-- main.js                      // 程序入口文件,加载各种公共组件
|-- .babelrc                         // ES6语法编译配置
|-- gulpfile.js                      // 启动,打包,部署,自动化构建
|-- webpack.config.js                // 程序打包配置
|-- server.js                        // 代理服务器配置
|-- README.md                        // 项目说明
|-- package.json                     // 配置项目相关信息,通过执行 npm init 命令创建
.

开发环境依赖模块说明

webpack相关模块

webpack                               // 用来构建打包程序
webpack-dev-server                    // 开发环境下,设置代理服务器
html-webpack-plugin                   // html 文件编译
url-loader                            // 图片  转化成base64格式
file-loader                           // 字体  将字体文件打包
css-loader                            // css  生成
less                                  // css  预处理器less
less-loader                           // css  预处理器less的webpack插件
style-loader                          // css  插入到style标签
autoprefixer-loader                   // css  浏览器兼容性问题处理
babel-core                            // ES6  代码转换器
babel-loader                          // ES6  代码转换器,webpack插件
babel-plugin-transform-object-assign  // ES6  Object.assign方法做兼容处理
babel-preset-es2015                   // ES6  代码编译成现在浏览器支持的ES5
babel-preset-stage-0                  // ES6  ES7要使用的语法阶段
vue-loader                            // vue  组件编译
babel-helper-vue-jsx-merge-props      // vue  jsx语法编译
babel-plugin-syntax-jsx               // vue  jsx语法编译
babel-plugin-transform-vue-jsx        // vue  jsx语法编译

gulp相关模块

gulp                                  // 用来构建自动化工作流
gulp-sftp                             // 将代码自动部署到服务器上
del                                   // 代码部署成功后,删除本地编译的代码

其他模块

cross-env                             // 解决跨平台设置NODE_ENV的问题

生产模块依赖说明

vue全家桶

vue                                   // 构建用户界面的
vue-router                            // 路由
vuex                                  // 组件状态管理

页面说明

/login                                // 登录,不需要登录可以访问
/signout                              // 退出登录,需要登录后才可以访问
/home                                 // 个人中心,需要登录后才可以访问
/                                     // 首页,不需要登录可以访问
*                                     // 强制跳转到登录页面

运行程序

npm install
npm run dev
http://localhost:3000/app/

开发教程

1.安装开发环境

vs code https://code.visualstudio.com

开发时所用的编辑器,内置了终端,开发时使它执行命令运行程序

Node.js https://nodejs.org

JS服务器端的运行环境,内置npm包管理器,管理项目依赖的各种模块,编译代码,自动部署到服务器就全靠他了

2.安装全局模块

webpack

npm install -g webpack

webpack是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理

gulp

npm install -g gulp

gulp是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务

3.创建项目

创建项目目录,并且在项目目录下执行命令,初始化package.json文件
npm init

4.安装开发环境依赖模块 npm install --save-dev 模块名

npm install --save-dev webpack webpack-dev-server html-webpack-plugin url-loader file-loader css-loader less less-loader style-loader autoprefixer-loader babel-core babel-loader babel-plugin-transform-object-assign babel-preset-es2015 babel-preset-stage-0 vue-loader babel-helper-vue-jsx-merge-props babel-plugin-syntax-jsx babel-plugin-transform-vue-jsx gulp gulp-sftp del cross-env

5.安装生产环境依赖模块 npm install --save 模块名

npm install --save vue vue-router vuex

5.搭建开发环境

6.测试编译

src/template/index.html

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<title>vue2-demo</title>
</head>

<body>
</body>

</html>

src/main.js

alert('test')
1.运行程序执行命令:npm run dev
2.然后打开网址:http://localhost:3000/app/
3.如果浏览器弹出test,说明我们的开发环境已经搭建通过。

package.json自定义命令说明

npm run dev      开发环境
npm run dev:test 将代码打包到测试服务器
npm run dev:dist 将代码打包到正式服务器
15 回复

试试。谢谢楼主。

执行npm run dev的时候,报错了。这是怎么回事呢?

ERROR in ./~/.css-loader@0.25.0!./~/.css-loader@0.25.0/lib/css-base.js Module build failed: Unknown word (7:2)

5 | // css base code, injected by the css-loader 6 | module.exports = function() {

7 | var list = []; | ^ 8 | 9 | // return the list of modules as css string 10 | list.toString = function toString() {

@ ./~/.css-loader@0.25.0/lib/css-base.js 6:14-54

我刚才半夜起来试了试,没有问题啊,你是不是把js代码写到了css文件里面去

希望楼主多出点这样的傻瓜式教程,VUE牵涉到的东西太多,经常会给人很乱的感觉。

@lpm0205 多谢支持

@1340641314 休息时间就按照楼主这个demo跑跑看

@lpm0205 过完年后,会学一些更深入的东西了。主要还是算法的

source vue-cnode mobile 2.0

感谢,我们就需要这样真的是从0开始的教程

@ericyin168 现在感觉这个教程比较老了,有时间更新下

source vue-cnode mobile 2.0

就是不清楚开始怎么搭建的流程,如果知道怎么去做第一个程序,并且学会打包、使用命令行安装模块、数据请求。 后面的都是熟能生巧了

能否跟你请教一下,对于NodeJS的安装目录以及其他包的安装目录,包括MongoDB的安装目录是否有需要注意的地方?还是直接都默认装C盘即可,有时候会遇到莫名其妙的问题,所有有此疑问

我一般都是默认安装,理论上安装到其他盘也是没有问题的

source vue-cnode mobile 2.0

老铁,gulpfile.js文件里面哪段是负责监听自动构建的,修改代码后刷新就可以看到修改的内容。项目里并没有写gulp的watch函数

如果用webpack 的 --watch,电脑都卡死,CPU使用率爆表。。。但是我运行你项目的run run dev对电脑影响不大

还有配置服务器一直没搞明白,server.js是在什么时候调用的没找到

回到顶部