关于vue.js
vue.js是一套构建用户界面的 轻型的渐进式前端框架。它的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。使用vue可以给你的开发带来极致的编程体验。
关于vue-cli
Vue-cli是vue官方提供的一个命令行工具(vue-cli),可用于快速搭建大型单页应用。该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程。只需一分钟即可启动带热重载、保存时静态检查以及可用于生产环境的构建配置的项目。
疑问
vue-cli主要是用于构建单页应用的脚手架,但是现实项目中,大部分项目都是多页的,怎么样可以很好的利用这一套官方配置呢?我在网上找了一下, 几乎找不到vue多页应用实例,所以才有基于vue-cli生成的单页应用进行改造。
代码地址:
Github:https://github.com/breezefeng/vue-cli-multipage,大家要是觉得好用就给一个star支持下吧~
使用方法
# install dependencies npm install # serve with hot reload at localhost:8080/module/index.html npm run dev # build for production with minification npm run build
目录结构
vue-cli-multipage |---build |---config |---src |---assets |---img 图片文件 |---css 样式文件 |---font 字体文件 |---components 组件 |---Button.vue 按钮组件 |---Hello.vue |---module |---index 首页模块 |---index.html |---index.js |---App.vue |---detail 详情页模块 |---detail.html |---detail.js |---App.vue
从目录结构上,各种组件、页面模块、资源等都按类新建了文件夹,方便我们储存文件。
其实我们所有的文件,最主要都是放在module文件夹里,以文件夹名为html的名称。
例如:
|---index 首页模块 |---index.html |---index.js |---App.vue
此时我们访问的链接是:
http://localhost:8080/module/index.html
这里一定要注意,在module里下级文件夹里需要将html,js,vue template 都统一放在当前文件夹里,当然你也可以继续放其他的资源,例如css、图片、组件等,webpack会打包到当前页面里。
如果项目不需要这个页面了,可以把这个文件夹直接删除掉,干净利落,干活也开心。
像以前传统的开发项目,所有的图片都习惯放在images里,当项目有改动时,有些图片等资源用不上了,但还占着坑位,导致项目越来越大,虽然现在的硬件容量大到惊人,但我们应该还是要养到一个良好的习惯。
组件的使用
组件(Component)是 vue.js 最强大的功能之一,当你发现使用组件可以减少造轮子里,你会深深的爱上它。
我们的组件都是放在components目录下的,调用组件的方法也很简单。
import Hello from 'components/Hello'
然后记得在*.vue注册导入的组件,要不然会无法使用。
import Hello from 'components/Hello' export default { name: 'app', components: { //在这里注册组件,不然无法使用 Hello } }
构建代码说明
那我们使用的是vue-cli的手脚架,用过vue-cli的同学都知道构建代码是放在根目录build下,vue多页面主要修改了这三个JS文件:webpack.base.conf.js、webpack.dev.conf.js、webpack.prod.conf.js。
/** ** [webpack.base.conf.js]这里主要列出相关代码的修改点,具体代码请看build/webpack.base.conf.js */ var entries = getEntry('./src/module/**/*.js'); // 获得入口js文件 module.exports = { entry: entries, .... } function getEntry(globPath) { var entries = {}, basename, tmp, pathname; glob.sync(globPath).forEach(function (entry) { basename = path.basename(entry, path.extname(entry)); tmp = entry.split('/').splice(-3); pathname = tmp.splice(0, 1) + '/' + basename; // 正确输出js和html的路径 entries[pathname] = entry; }); return entries; }
/** ** [webpack.prod.conf.js]这里主要列出相关代码的修改点,具体代码请看build/webpack.base.prod.js */ function getEntry(globPath) { var entries = {}, basename, tmp, pathname; glob.sync(globPath).forEach(function (entry) { basename = path.basename(entry, path.extname(entry)); tmp = entry.split('/').splice(-3); pathname = tmp.splice(0, 1) + '/' + basename; // 正确输出js和html的路径 entries[pathname] = entry; }); return entries; } var pages = getEntry('./src/module/**/*.html'); for (var pathname in pages) { // 配置生成的html文件,定义路径等 var conf = { filename: pathname + '.html', template: pages[pathname], // 模板路径 inject: true, // js插入位置 minify: { //removeComments: true, //collapseWhitespace: true, //removeAttributeQuotes: true }, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency' }; if (pathname in module.exports.entry) { conf.chunks = ['manifest', 'vendor', pathname]; conf.hash = true; } module.exports.plugins.push(new HtmlWebpackPlugin(conf)); }
修改的代码不是很多,但是却为多页应用提供了强大的构建支持。欢迎大家使用,也希望大家多多交流
参考:
https://github.com/Coffcer/Blog/issues/1
http://cnu4.github.io/2016/03/21/Webpack-Vue-MultiplePage/
http://jiongks.name/blog/just-vue/?from=groupmessage&isappinstalled=1
http://www.cnblogs.com/grimm/p/5768433.html
https://github.com/yaoyao1987/vue-cli-multipage
相关推荐
详解vue-cli + webpack 多页面实例应用 本篇文章主要介绍了使用vue-cli和webpack来构建多页面实例应用,解决了vue-cli主要用于构建单页应用的限制。通过对vue-cli的改造,可以快速搭建多页应用,并且具有良好的扩展...
本文主要讲解如何使用Vue.js,Vue-router和Webpack搭建一个单页面Web应用。首先,Vue.js是一个轻量级的JavaScript框架,用于控制页面逻辑和处理。Vue-router是Vue.js的官方路由库,它使得在单页面应用中实现页面跳转...
本文主要讲解如何使用Vue.js、Vue-router和Webpack搭建一个前端开发框架,并提供了详细的步骤和...总体来说,Vue+Vue-router+Webpack的组合为前端开发提供了高效且灵活的工作流程,使得构建单页面应用变得更加便捷。
本文将详细介绍如何使用Vue.js、Vue-router和Webpack构建一个前端单页面应用程序。Vue.js是一个轻量级的JavaScript框架,用于处理页面逻辑和状态管理;Vue-router是Vue.js官方的路由库,负责单页面应用的页面导航;...
* Webpack是一个JavaScript模块打包工具,能够将多个JavaScript文件打包成一个文件,提高页面加载速度。 二、 Vuex的介绍 * Vuex是一个状态管理器,用于管理组件之间的状态。 * Vuex能够帮助我们将公用的状态抽...
本文介绍了vue-cli + webpack 多页面实例配置优化方法,分享给大家 vue+webpack是否有多页面 目前使用vue来做项目,估计大部分都是单页面(SPA)应用,一个轻型的 MVVM 框架,谁用了MVVM框架,就再也回不去JQ时代...
本教程将深入探讨如何使用Vue、Vue CLI和Webpack构建一个多页面应用程序,并集成Vue Router和VUX插件。 首先,创建项目基础结构。使用Vue CLI 3或更高版本,通过命令行运行`vue create`命令来初始化项目,指定预设...
在构建现代前端应用程序时,...总之,Vue.js、Vue Router和Webpack结合使用,能够构建出功能强大且高效的单页面Web应用。通过理解每个组件的作用以及它们之间的交互,开发者可以更加灵活地构建和维护自己的前端项目。
1. **前端框架**:使用Vue.js(通过vue-cli和webpack构建)作为主要的前端开发工具,提供快速响应的用户体验,并支持模块化开发,便于代码组织和优化。 2. **后端技术**:虽然未直接提及,但通常这样的系统会包含...
在本文中,我们将深入探讨如何使用vue-cli搭建基于Webpack的项目环境,并理解相关配置和文件结构。Vue CLI(命令行接口)是Vue.js官方提供的一个快速脚手架工具,它简化了项目初始化和配置过程,使得开发者能够更...
Vue CLI 是一个官方提供的命令行工具,用于快速搭建 Vue.js 应用程序。它简化了项目的初始化、配置和脚手架工作,使开发者能够更专注于编写业务代码。在这个"vue-cli开发的商城源代码"项目中,我们可以看到一系列与...
3. **安装 Vue CLI**: 用于快速搭建 Vue.js 项目的脚手架工具。 ```shell cnpm install -g vue-cli ``` 4. **安装 Bower**: 前端包管理器,用于管理项目依赖。 ```shell cnpm install -g bower ``` 5. **初始...
"vue-admin-template" 是基于Vue.js、Vue CLI、Webpack和Bootstrap构建的一个后台管理系统模板。这个模板提供了一个起点,开发者可以在此基础上快速搭建功能完备的管理后台。 **Vue.js** Vue.js的核心特性包括声明...
【Vue CLI 3 + TypeScript + Webpack 多入口多出口实现】 在开发Web应用程序时,有时需要构建多个独立的页面,比如嵌套的H5页面。Vue CLI 3 是一个强大的脚手架工具,用于快速搭建 Vue.js 项目。而 TypeScript 提供...
本篇文章主要介绍了vue-cli+webpack在生成的项目中使用bootstrap实例代码,具有一定的参考价值,有兴趣的可以了解一下
Webpack 是一个模块打包器,它将应用程序视为由多个模块组成的,通过静态分析来找出模块之间的依赖关系,然后将这些模块转换成一个或多个浏览器可理解的文件,以达到优化加载速度和实现代码分隔的目的。在Vue项目中...
在Vue2.0中,构建应用常常会借助vue-cli和webpack这两个强大的工具。vue-cli用于快速搭建项目结构,而webpack则是强大的模块打包器,能够帮助处理JavaScript、CSS、图片等资源。本文将通过实例讲解如何在这样的环境...