之前的那门 JS 和前端课结课了,最后花了一周时间写了一个 project,使用 Vue.js 的一套工具写了一个单页面应用,先将使用到及学到的知识来整理一下。
想了想,之前自己学习 Vue.js 的时候一直在翻文档,翻到哪些让人眼前一亮的功能时就将它加进自己的项目里,并没有什么系统地进行学习,所以想到哪写到哪好了。前方高乱预警。
1. Vue.js
之前用 React 用得有些不爽了所以想换换口味, 于是 用Vue.js 写了一个小应用的前端部分。它的轻量以及MVVM架构让我在两天之内爱上了它,于是决定用它代替 React 去完成 final project 的前端部分。
不知道为什么,我觉得 Vue.js 比 React 更容易上手,所以很快就学会了它。想了想确实不知道该整理一些什么,因为 Vue 的官方教程写的确实很直白清楚,所以在此不再赘述,有时间的话可能会考虑写一个 Vue 的教程。
2. vue-cli
vue-cli 是一个 Vue.js 官方提供的脚手架工具,你可以使用它来轻松地构建出一个应用 Vue.js 的工程。官方提供 5 种模板,当然你也可以在 github 上或者本地构建自己的模板然后使用 vue-cli 生成工程。
具体使用方法:生成一个工程极为简单,只需一两条命令即可。
1 | $ vue init webpack my-project // 使用 webpack 模板生成工程 my-project |
然后,借助 webpack 与 vue-loader, 你可以将一个 Vue 组件的模板、核心js代码和CSS写在一个文件里,甚至还可以使用 CSS 与 HTML 的预处理器,像这样:

图片来自 Vue.js 官方教程 - 构建大型应用。
3. Vue-router
vue-router 是 vue 官方提供的路由模块,可以实现 SPA 中的路由操作。具体文档看这里。顺便提一句,vue-router 的中文文档已经过时了。
3.1 初始化
首先使用 npm 安装 vue-router, 然后在程序入口点配置 vue-router.
1 | import Vue from 'vue' |
然后在 App.vue 的 template 中设置 router-view.
1 | <template> |
3.2 vue-router 的使用
Vue Router 对象被嵌入到每个 vue 组件中,可以在组件中调用 this.$router 来控制 router 对象,如进行页面跳转等。
此外,还可以在页面切换时在组件的 route 配置中使用路由切换钩子控制 vue-router,详情请看文档
4. Vuex
Vuex 是一个借鉴于 Flux,但是专门为 Vue.js 所设计的状态管理方案。Flux 采用了 Action → Dispatcher → Store → View 的状态管理机制,而 Vuex 跟它差不多:Vue 组件调用 action,action dispatches mutation, mutation 改变 store 中的 state,state 改变 View. 下面是 Vuex 的数据流。

4.1 使用方法
程序入口点:
1 | import Vuex from 'vuex' |
主应用:
1 | import store from '../store' |
其它组件:
1 | export default { |
关于 store 及 mutation 的定义方式,请参考 Vuex 文档。
5. 总结 & 后记
跟 React 相比,个人感觉 Vue 要更容易上手,易于使用,文档也很清楚(比 Hexo 的高到不知道那里去了,前两天被 Hexo 整疯了必须要黑一下它);Vue 的一系列工具也很易于使用,与 Vue 整合度高,可以在组件中方便地进行操作。
前端课结课,准备退坑了,过几天可能会学习并整理一些后端的知识。