Vue 全家桶 + Express 实现的博客(后端 API 全部自己手写,很适合刚入门 vue 以及 express 的小伙伴学习)

2017-07-12 17:25:01 +08:00
 AlloyTeamZy

为什么学习并使用 Vue

1.发展趋势

最近这几年的前端圈子,由于戏台一般精彩纷呈,从 MVC 到 MVVM,你刚唱罢我登场。backbone,AngularJS 已成昨日黄花,reactjs 如日中天,同时另一更轻量的 vue 发展势头更猛,号称兼具了 angularjs 和 reactjs 的两者优点。

2.Vue 能干吗

移动端的上网需求已经远高于 pc 端,特别是 hybrid 方式的 H5 应用中,但是性能问题一直是痛点。 如果使用 SPA (就是俗称的单页应用( Single Page Web Application )),SPA 它将所有的活动局限于一个 Web 页面中,仅在该 Web 页面初始化时加载相应的 HTML、JavaScript 和 CSS。一旦页面加载完成了,SPA 不会因为用户的操作而进行页面的重新加载或跳转。没有页面切换,就没有白屏阻塞,可以大大提高 H5 的性能,达到接近原生的流畅体验。

陆续续看 vue 已经二个多月了,3 月份使用 vue2.0 开发了一个简单的博客,在用 vue 人性化优势的同时,的也遇到过很多坑,很多问题,分享一下我遇到的问题和解决办法

Vue2_blog 技术栈

vue2,vuex,vue-cli,axios,webpack,express,mysql

Build Setup

# install dependencies
npm install

# serve with hot reload at localhost:8080 (本地启动)
npm run dev

# build for production with minification (生成静态文件,用于打包上传服务器)
npm run build

看这里:如果是刚入门的小伙伴,不知道把项目 clone 到本地后怎么在本地跑起来,这里写了个详细的说明文档,希望能帮助到你们 说明文档

主要实现的功能

1.用户登录

2.用户注册

3.用户发帖

4.用户评论帖

5.用户留言

构建

使用 vue-cli 来构建初始化项目,非常方便,相当于生成项目模板这样子。

vuex

vue 就我个人理解,是数据驱动,实现页面组件化开发,更好管理和维护,vuex 是用作组件间的通信,当然了如果页面够简单,也可以使用其他方法进行通信(传值),比如 props 等。

axios

说实话,项目前期我还用的是 vue-resource,后面才统一改用 axios (尤大大本人都力推的),二者都是用于客户端和服务端通信的,也就是用作 ajax 请求的。

webpack

webpack 是一款模块加载器兼打包工具,它能把各种资源,例如 JS (含 JSX )、coffee、样式(含 less/sass )、图片等都作为模块来使用和处理。比如,我们 vue 组件化开发,会用 ".vue" 文件,这种文件不会被浏览器所解析,所以需要用 webpack 来 "格式化" 他们,让他们变为浏览器可以解析的文件格式。还有,还有,用 webpack,你就可以愉快的使用 es6 的语法啦!

express & mysql

所谓一个"系统",怎么只能是简单的静态页面?在这里用了 express ( express 是一个基于 Node.js 平台的开发框架)和 mysql 来进行编写数据存储的后端 api,用于用户信息在数据库里存储和读取。

pm2

pm2 是一个带有负载均衡功能的 Node 应用的进程管理器,并保证进程永远都活着,0 秒的重载。其实它主要作用就是 nodejs 集群。按照我的理解,通俗的将,它的作用就是,本地开发环境,你要开启 node 服务,实现某些功能(比如监听某个端口),就会在控制台执行"node app.js"(比如这个文件叫 app 吧!),对应的 node 服务就会开启了,但是你只要一关闭这个控制台窗口,他就没有对应的服务进程了,每次起服务都得"控制台 -> node app.js"。在生产环境来说,很麻烦,这会就用到了 pm2,只需要执行一次"pm2 start app.js"。ok,一劳永逸,控制台窗口随你怎么自由开启关闭,对应的服务进程永远在后面运行着。

项目预览

Vue_blog(只适配了移动端)

Github 源码

Github 源码

总结

刚用 vue 开发的时候,遇到了很多问题,也犯了很多错误,不过,现在而言,自己收获蛮多。自己的 vue 博客(留言板)已经开发完成。我想说的是,麻雀虽小,五脏俱全,虽然只是一个小应用,但它涵盖了许多知识点,包括前端,后端,数据库等一个网站的所必须的一些组成要素,对我来说,学习意义很大,愿共勉!

2118 次点击
所在节点    Vue.js
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/374843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX