基于 requirejs、vue全家桶、ant design 实现的 antd-vue-pro(模仿版)

2,472 阅读3分钟

1、阅读之前

如果您对项目源码感兴趣,在阅读源码之前,我已经默认了你已经熟练的掌握了HTML/JAVASCRIPT/CSS3 中级编程知识,熟悉 Vue.js,并且对其异步组件加载原理有了深入的认识,对 Vue 组件 template 中使用 html 模板的注意事项(不能使用PascalCase(首字母大写命名),而需要使用 kebab-case 命名方式,以及自定义组件不能以单标签的方式使用等等)的指示点已经掌握!对 ES6、Promise 的各种使用方式已经熟悉,当然,您得知道 AMD 和 CMD 的区别,以及为什么浏览器为什么目前 AMD 是主流。本项目中加载组件依赖的方式几乎都是 AMD 配合 Promise 完成。

2、简介

本人后端程序员一枚,业余爱好前端,Vue 作为目前前端炙手可热的前端技术,其作用不言而喻,既可以直接内嵌在网页中实现我们网站的一小部分功能,简化我们的开发!也可以配合打包工具、vue 全家桶构建大型的单页应用。首先得指出,个人觉得 Vue SPA 的最佳实践是配合配合打包工具,本项目并非挑战此最佳实践,而是尝试 Requirejs + Vue + Vuex + Vue-router + axios + ant.design 构建纯前端实现 SPA 的可能性。

项目灵感起源于 http-vue-loader, 一个可以前端直接加载 .vue 文件的库, 看起来很神奇,于是笔者去研究了它的源码,其原理不是很复杂,却让笔者萌生了直接使用 http-vue-loader 构建一个纯前端 SPA 的想法。当然,在落地的过程中遇到了很多坑,如果不懂 http-vue-loader 原理,这个项目你是不可能实现的,因此,本项目的 http-vue-loader 已经被笔者优化了,其中包括: style 样式局部化优化(很重要),script 模块加载优化(重要),template 优化(配合 style 优化),网络加载器缓存控制优化。

本项目基于 vue-antd-admin 改造,.vue 文件相似度 80% 以上,但不兼容,毕竟是纯前端的版本,CMD 方式的模板加载是不支持的。

3、预览地址

require-vue-admin

4、项目特色

  • vue 文件几乎和 CMD 方式一致
  • vue 组件支持异步组件、非异步组件(本项目中未用到)
  • 支持别名加载依赖,加载组件(很重要),eg:
    • @ 根路径
    • @CMP components 路径
    • @IMG 图片路径
    • 更多请查看 ~/static/require-config/modules/config.js 配置
  • 支持局部样式(很重要)
  • vue 文件支持 ES6 语法
  • 支持 development、production 环境
  • 缓存支持(生产环境更新缓存只需要修改全局 version 即可更新)(很重要)
  • 权限系统(完善中...)

5、注意事项

项目中有许多依赖依赖于 cdn,本地构建服务访问请确保网络畅通。

6、最后的话

先开源在这里,项目不支持 IE,如果有问题可留言笔者。