精华内容
下载资源
问答
  • vue多页面应用模板 Vue PC端多页面应用模板 ,基于Vue 2, Webpack4, Element-UI 依赖 ( default) 开始 初始化项目 $ npm install -g vue-cli --------------------------------------------------------------------...
  • vue-cli 多页面应用 因为貌似不再更新这个多页面配置了,于是我自己来把这个更新了,后期要是 vue-cli 更新的话我也会同步更新的 项目迁移 的这个项目不再维护,因为是 fork 来的,没有 issues 功能,不利于后期维护...
  • vue20多页面应用模板

    2019-08-12 03:13:43
    vue2.0 多页面应用模板
  • 基于vue-cli的vue多页面配置模板
  • 最近研究了一下 vue 多页面应用,参考着,也搞了个模板模板传送门 至于 多页面 、 单页:

    最近研究了一下 vue 多页面应用,参考着,也搞了个模板: 模板传送门

    至于 多页面 、 单页:
    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • Webapck Vue多页面商城模板

    千次阅读 2019-09-27 20:19:04
    Vue官方提供了Vue-Cli脚手架,集成了Webpack的环境,上手开发和构建非常方便。但Vue-cli适用于单页应用,而平常做的项目中往往都是页的,网上看了很Webpack多页面的配置,中间遇...

    Vue官方提供了Vue-Cli脚手架,集成了Webpack的环境,上手开发和构建非常方便。但Vue-cli适用于单页应用,而平常做的项目中往往都是多页的,网上看了很多Webpack多页面的配置,中间遇到很多坑,自己看文档,对着做出了这个多页面的商城模板。

    项目模板效果:

    项目开源在Github,欢迎star。github地址

    在线预览:http://github.czero.cn/store/index.html

    项目描述

    静态页面是用的阿里团队的rem和flex弹性布局。

    商城的数据是用axios请求本地的JSON文件,再用Vue进行渲染。

    项目放在github,乐于交流,欢迎star

    webpack文档

    https://doc.webpack-china.org/guides/

    webpack.config.js

    const path = require("path");
    const webpack = require('webpack');
    const CleanWebpackPlugin = require('clean-webpack-plugin'); /*每次编译之前,先删除之编译好的文件夹*/
    const ExtractTextPlugin = require("extract-text-webpack-plugin"); /*提取css到为单独文件*/
    const HtmlWebpackPlugin = require('html-webpack-plugin'); /*生成html*/
    const CopyWebpackPlugin = require('copy-webpack-plugin'); /*复制文件*/
    const CommonsChunkPlugin = require("webpack/lib/optimize/CommonsChunkPlugin");
    const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); /*精简输出*/
    module.exports = {
    	entry: {
    		rem: './js/rem.js',		/*动态计算rem*/
    		swiper: './js/swiper.js', /*轮播插件*/
    		index: './js/index.js', /*首页*/
    		detail: './js/detail.js', /*详情页*/
    		category: './js/category.js', /*分类*/
    		cart: './js/cart.js', /*购物车*/
    		member: './js/member.js', /*会员页面*/
    		address: './js/address.js', /*地址列表页面*/
    		addaddress: './js/addaddress.js', /*添加地址*/
    		datacity :'./js/datacity.js', /*三级联动地址数据*/
    		order: './js/order.js' /*订单*/
    	},
    	devtool: 'inline-source-map',   //开启调试模式
    	output: {
    		path: path.resolve(__dirname, "./build"),
    		filename: "./js/[name].[chunkhash:8].js",    //输出的文件加入hash值
    	},
    	module: {
    		loaders: [{
    				test: /(\.jsx|\.js)$/,
    				use: {
    					loader: "babel-loader",
    					options: {
    						presets: [
    							"es2015"
    						]
    					}
    				},
    				exclude: /node_modules/
    			},
    			
    			{
    				test: /(\.less|\.css)$/,
    				use: ExtractTextPlugin.extract({
    					fallback: "style-loader",
    					use: "css-loader!less-loader!postcss-loader",
    				})
    
    			},
    			 {
    			 	//提取html里面的img文件
    		        test: /\.(htm|html)$/i,
    		        loader: 'html-withimg-loader',
    		   },
    			   {
    			   	//图片打包
    			   	test:/(\.jpg|\.png|\.gif|\.jpeg)$/, 
    			   	use:{
    			   		loader:'file-loader',
    			   		 options: {
    			   		 	outputPath: 'icon',
    			   		 	name:'[name].[ext]',		   		 	
    				      	useRelativePath:true
    				    }
    			   	}
    			   },			 
    		]
    	},
    	plugins: [
    		new webpack.BannerPlugin('凡几所有,翻版必究'),
    		new ExtractTextPlugin('./css/[name].[chunkhash:8].css'),
    //		new UglifyJSPlugin(),
    		 代码压缩
    		new webpack.optimize.UglifyJsPlugin({
    			compress: {
    				warnings: false
    			}
    		}),
    		// html文件输出
    		new HtmlWebpackPlugin({
    			title: '首页',
    			filename: 'index.html',
    			template: './index.html',			
    			chunks: ['rem','index','swiper'],
    			hash:true,
    			cach:true,
    			minify:{
    				caseSensitive:false, //是否大小写敏感
    				removeComments:true, //去除注释
    				removeEmptyAttributes:true,//去除空属性
    				collapseWhitespace:true //是否去除空格
    			},
    			inject:'body'
    		}),	
    		new HtmlWebpackPlugin({
    			title:'分类',
    			filename: './pages/category.html',
    			template: './pages/category.html',			
    			chunks: ['rem','category']
    		}),	
    		new HtmlWebpackPlugin({
    			title:'购物车',
    			filename: 'pages/cart.html',
    			template: 'pages/cart.html',			
    			chunks: ['rem','cart']
    		}),	
    		new HtmlWebpackPlugin({
    			title:'个人中心',
    			filename: 'pages/member.html',
    			template: 'pages/member.html',			
    			chunks: ['rem','member']
    		}),	
    		new HtmlWebpackPlugin({
    			title:'商品详情',
    			filename: 'pages/detail.html',
    			template: 'pages/detail.html',			
    			chunks: ['rem','detail']
    		}),	
    		new HtmlWebpackPlugin({
    			title:'地址列表',
    			filename: 'pages/address.html',
    			template: 'pages/address.html',
    			chunks: ['rem','address']
    		}),
    		new HtmlWebpackPlugin({
    			title:'添加地址',
    			filename: 'pages/addaddress.html',
    			template: 'pages/addaddress.html',			
    			chunks: ['rem','addaddress','datacity']
    		}),
    		new HtmlWebpackPlugin({
    			title:'订单详情',
    			filename: 'pages/order.html',
    			template: 'pages/order.html',			
    			chunks: ['rem','order']
    		}),
    		new CopyWebpackPlugin([{
    		    from: __dirname   '/data',
    		    to:'data/'
    		}]),
    		
    		 new CommonsChunkPlugin({
    		       name:"rem",
    		  }),
    		new CleanWebpackPlugin(['build']) //编译前先清除文件夹
    	],
    
    	// 全局引用jquery
    	externals: {
    		jquery: 'window.$',
    	},
    	//构建本地服务器的相关配置 需要在`package.json`里面激活
    	devServer: {
    		contentBase:'./build',
    		historyApiFallback: true, //不跳转
    		inline: true,//实时刷新,
    	},
    
    }
    

    配置loader:

    babel-loader:将es6输出转化为es5
    less-loader:将less转化为css
    html-withimg-loader:提取html里面的img文件到编译完成后的文件夹当中
    file-loader:将图片进行转化成base64
    

    配置插件plugin:

    webpack.BannerPlugin:会在你编译生成后的js添加注释
    ExtractTextPlugin:将css文件提取出来,单独引用到html文件中
    UglifyJSPlugin:每次编译都压缩一下代码,减少生成的文件体积
    HtmlWebpackPlugin:指定模板,打包后会自动将入口的js引用到页面
    CommonsChunkPlugin:将公用的js文件提取出来
    CleanWebpackPlugin:每次编译之前都会先清除掉之前的打包文件
    

    externals

    配置全局jquery
    

    devServer:

    安装devserver可以构建本地服务器,每次修改和保存都会自动的刷新页面
    

    postcss.config.js

    配置postcss主要是为了解决css样式在有些浏览器兼容的原因,会自动给你添加后缀
    

    更多专业前端知识,请上 【猿2048】www.mk2048.com
    展开全文
  • vue多页面应用

    2020-06-23 19:23:02
    Vue.config.js是一个可选的配置文件,其中pages选项是构建多页面应用。 需求:vue搭建的项目中,需要多页面,并单独设置路由。 目录结构:跟多页面相关的文件在红色框里面。 Public文件夹中的index.html和...

    本文是针对vue.config.js里的pages属性配置。详情见官网https://cli.vuejs.org/zh/config/#pages

    Vue.config.js是一个可选的配置文件,其中pages选项是构建多页面应用。

    需求:vue搭建的项目中,需要多页面,并单独设置路由。

    前提:利用Vue CLI创建项目。

    目录结构:跟多页面相关的文件在红色框里面。

    Public文件夹中的index.html和page2.html是配置多页面应用的模板来源。

    Components里面是公用组件。

    Pages文件夹里面的入口文件index.js和page2.js,相当于单页面中的main.js

    Pages文件夹里面的Index.vue和Page2.vue,相当于单页面中的App.vue。

    Pages文件夹里面的indexRouter.js和page2Router.js,相当于单页面中的router.js。

    Views文件夹里面是vue组件。

     

     

    第一步

    定义componens>AppHeader.vue公用组件:

    <template>
      <div>
          <a href="./index.html" target="_blank">跳到首页</a>
          <br/>
           <a href="./page2.html" target="_blank">跳到page2页面</a>
      </div>
    </template>
    
    <script>
    export default {};
    </script>

     

    第二步:定义views里面的组件:

    定义views>A.vue:

    <template>
      <div>A页面</div>
    </template>
    
    <script>
    export default {
        name:'A'
    }
    </script>

    定义views>B.vue:

    <template>
      <div>B页面</div>
    </template>
    
    <script>
    export default {
        name:'B'
    }
    </script>

    定义views>index.vue:

    <template>
      <div>index页面</div>
    </template>
    
    <script>
    export default {
        name:'Index'
    }
    </script>

     

    第三步:定义pages文件夹里面的文件:

    定义Pages>index>index.vue:

    <template>
      <div id="Index">
        <app-header/>
        <p>首页内容</p>
        <router-link :to="{name:'A'}">跳到A页面</router-link>
        <router-view/>
      </div>
    </template>
    
    <script>
    import AppHeader from '../../components/AppHeader'
    export default {
        name:'Index',
        components:{
          AppHeader
        }
    }
    </script>

    定义Pages>index>index.js:

    import Vue from 'vue'
    import Index from './Index.vue'
    import router from './indexRouter'
    
    Vue.config.productionTip = false
    
    new Vue({
      render: h => h(Index),
      router
    }).$mount('#Index')
    
    

    定义Pages>index>indexRouter.js路由:

    import Vue from 'vue'
    import Router from 'vue-router'
    
    Vue.use(Router)
    
    const router = new Router({
        routes:[
            //首页
            {
                path:'/',
                component:()=>import('@/views/index')
            },
            {
                path:'/a',
                name:'A',
                component:()=>import('@/views/A')
            }
        ],
        mode:'history'
    })
    
    export default router

    page2文件夹跟index文件夹类似:

    定义Pages>page2>Page2.vue:

    <template>
      <div id="page2">
        <app-header/>
        <p>Page2页面</p>
        <router-link :to="{name:'B'}">跳到B页面</router-link>
        <router-view/>
      </div>
    </template>
    
    <script>
    import AppHeader from '../../components/AppHeader'
    export default {
        name:'Page2',
        components:{
          AppHeader
        }
    }
    </script>
    
    

    定义Pages>page2>Page2.js:

    import Vue from 'vue'
    import Page2 from './Page2.vue'
    import router from './page2Router'
    
    Vue.config.productionTip = false
    
    new Vue({
      render: h => h(Page2),
      router
    }).$mount('#page2')
    
    

    定义Pages>page2>page2Router.js路由:

    import Vue from 'vue'
    import Router from 'vue-router'
    
    Vue.use(Router)
    
    const router = new Router({
        routes:[
            //首页
            {
                path:'/',
                component:()=>import('@/views/index')
            },
            {
                path:'/b',
                name: 'B',
                component:()=>import('@/views/B')
            }
        ],
        mode:'history'
    })
    
    export default router

     

    第四步:定义public文件夹里面的index.html和page2.html模板文件;

    定义index.html:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <link rel="icon" href="<%= BASE_URL %>favicon.ico">
        <!-- <title><%= htmlWebpackPlugin.options.title %></title> -->
        <title>index title</title>
      </head>
    
      <body>
        <noscript>
          <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
        </noscript>
        <div id="Index"></div>
        <!-- built files will be auto injected -->
      </body>
    </html>

     

    定义page2.html:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <title>page2 title</title>
      </head>
    
      <body>
        <noscript>
          <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
        </noscript>
        <div id="page2"></div>
        <!-- built files will be auto injected -->
      </body>
    </html>
    
    

     

    第五步:设置vue.config.js文件;

    'use strict'
    const path = require('path')
    
    function resolve(dir){
        return path.join(__dirname,dir)
    }
    
    module.exports = {
        publicPath:'/',
        outputDir:'dist',
        assetsDir:'static',
        configureWebpack:{
            name:'abc',
            resolve:{
                alias:{
                    '@':resolve('src')
                }
            }
        },
        pages:{
            index:{
                //应用入口配置,相当于单页面应用的main.js 必需
                entry:'src/pages/index/index.js',
                template:'public/index.html',
                filename:'index.html'
            },
            page2:{
                entry:'src/pages/page2/page2.js',
                template:'public/page2.html',
                filename:'page2.html'
            }
        }
    }
    
    

    主要看vue.config.js里面的pages选项,entry是入口文件,template是模板文件,filename是文件名。

    访问http://localhost:8080/效果图:

     

    展开全文
  • Vue.config.js是一个可选的配置文件,其中pages选项是构建多页面应用。需求:vue搭建的项目中,需要多页面,并单独设置路由。前提:利用Vue CLI创建项目。目录结构:跟多页面相关的文件在红色框里面。 Public文件夹...

    本文是针对vue.config.js里的pages属性配置。详情见官网https://cli.vuejs.org/zh/config/#pages。

    Vue.config.js是一个可选的配置文件,其中pages选项是构建多页面应用。

    需求:vue搭建的项目中,需要多页面,并单独设置路由。

    前提:利用Vue CLI创建项目。

    目录结构:跟多页面相关的文件在红色框里面。

    1b033a8c81681c846b1ca5694e3decfb.png

    Public文件夹中的index.html和page2.html是配置多页面应用的模板来源。

    Components里面是公用组件。

    Pages文件夹里面的入口文件index.js和page2.js,相当于单页面中的main.js

    Pages文件夹里面的Index.vue和Page2.vue,相当于单页面中的App.vue。

    Pages文件夹里面的indexRouter.js和page2Router.js,相当于单页面中的router.js。

    Views文件夹里面是vue组件。

    第一步:

    定义componens>AppHeader.vue公用组件:

    第二步:定义views里面的组件:

    定义views>A.vue:

    A页面

    定义views>B.vue:

    B页面

    定义views>index.vue:

    index页面

    第三步:定义pages文件夹里面的文件:

    定义Pages>index>index.vue:

    首页内容

    跳到A页面

    定义Pages>index>index.js:

    import Vue from 'vue'

    import Index from './Index.vue'

    import router from './indexRouter'

    Vue.config.productionTip = false

    new Vue({

    render: h => h(Index),

    router

    }).$mount('#Index')

    定义Pages>index>indexRouter.js路由:

    import Vue from 'vue'

    import Router from 'vue-router'

    Vue.use(Router)

    const router = new Router({

    routes:[

    //首页

    {

    path:'/',

    component:()=>import('@/views/index')

    },

    {

    path:'/a',

    name:'A',

    component:()=>import('@/views/A')

    }

    ],

    mode:'history'

    })

    export default router

    page2文件夹跟index文件夹类似:

    定义Pages>page2>Page2.vue:

    Page2页面

    跳到B页面

    定义Pages>page2>Page2.js:

    import Vue from 'vue'

    import Page2 from './Page2.vue'

    import router from './page2Router'

    Vue.config.productionTip = false

    new Vue({

    render: h => h(Page2),

    router

    }).$mount('#page2')

    定义Pages>page2>page2Router.js路由:

    import Vue from 'vue'

    import Router from 'vue-router'

    Vue.use(Router)

    const router = new Router({

    routes:[

    //首页

    {

    path:'/',

    component:()=>import('@/views/index')

    },

    {

    path:'/b',

    name: 'B',

    component:()=>import('@/views/B')

    }

    ],

    mode:'history'

    })

    export default router

    第四步:定义public文件夹里面的index.html和page2.html模板文件;

    定义index.html:

    index title

    定义page2.html:

    page2 title

    第五步:设置vue.config.js文件;

    'use strict'

    const path = require('path')

    function resolve(dir){

    return path.join(__dirname,dir)

    }

    module.exports = {

    publicPath:'/',

    outputDir:'dist',

    assetsDir:'static',

    configureWebpack:{

    name:'abc',

    resolve:{

    alias:{

    '@':resolve('src')

    }

    }

    },

    pages:{

    index:{

    //应用入口配置,相当于单页面应用的main.js 必需

    entry:'src/pages/index/index.js',

    template:'public/index.html',

    filename:'index.html'

    },

    page2:{

    entry:'src/pages/page2/page2.js',

    template:'public/page2.html',

    filename:'page2.html'

    }

    }

    }

    主要看vue.config.js里面的pages选项,entry是入口文件,template是模板文件,filename是文件名。

    访问http://localhost:8080/效果图:

    e93fc2eee9f02baa332018054e05bc98.png

    展开全文
  • 基于vue2和vue-cli搭建的一款vue多页面应用脚手架,可自动生成webpack配置、模板html、入口js文件以及根组件,集成移动端适配
  • vue应用多模板写法

    2021-09-10 13:17:24
    如果应用更加复杂,这时候就体现出来了多模板布局的重要性。 实现方式 在路由设置中将对应组件页面设置成对应模板的子路由就可以达到效果。 router.js new router({ routes: [ { path: '/', compontent: ()...
  • Webapck+Vue多页面商城模板

    千次阅读 2017-12-04 02:56:18
    Vue-cli适用于单页应用,而平常做的项目中往往都是页的,网上看了很Webpack多页面的配置,中间遇到很坑,自己看文档,对着做出了这个多页面的商城模板。 项目模板效果: 项目开源在Github,欢迎star。github...
  • VUEvue后台常用模板

    万次阅读 多人点赞 2019-04-11 15:30:13
    vue后台常用模板: element文档: http://element-cn.eleme.io/#/zh-CN/component/installation vue API: https://cn.vuejs.org/v2/api/ 以下是在下收集的三个常用的vue模板 1、vue-manage-system git地址:...
  • vue 多页面应用搭建

    2019-06-12 17:50:51
    vue-cli 多页面应用搭建学习总结新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • 大部分时间,Vue都用来开发单页面应用程序(single page web application,SPA),但有时也需要开发多页面应用,这就要配置Vue CLI。有Vue CLI,一是在项目的package.json中添加一个vue字段,在这个字段中配置相关的...
  • `VuePages` 是一套支持 「静态模板直出」的 `Vue` 应用解决方案
  • 一直是使用vue官方提供的脚手架工具来做开发单页应用,突发奇想的想做一个应用的打包配置,顺便了解一下webpack的使用。花了几天时间搞定之后才发现了这篇文章《进阶| Vue 2.x + Webpack 3.x + Nodejs 多页面...
  • 一个vue单页应用模板,封装了api,规划了合理的结构目录。可以方便的集成iviewUi、elementUi、museUi、mintUi、vuxUi等,用于快速开发单页应用
  • vue配置多页面应用

    万次阅读 热门讨论 2018-05-10 18:50:02
    第一步:使用vue-cli搭建项目(注:建议安装淘宝镜像,使用cnpm执行下面操作)  1.按住shift按钮,右键点击存放项目的文件夹,点击在此处打开命令窗口。  2.在命令窗口中输入 npm install -g vue-cli 安装vue-...
  • Vue多页面应用骨架屏添加实践

    千次阅读 2019-02-15 12:50:06
    Vue+Webapck搭建的MPA(多页面应用)添加骨架屏,通过对JS文件加载方式的变更,兼容移动端和PC端浏览器的渲染机制,保证骨架屏的正常显示
  • 验证测试 项目设置 npm install 编译和热重装以进行开发 npm run serve 编译并最小化生产 npm run build 整理和修复文件 npm run lint 自定义配置 请参阅。
  • Vue页面应用

    2019-11-06 15:40:57
    ** 1. SPA是什么 ** 单页Web应用(single page application,SPA),就是只有一个Web页面应用, 是加载单个HTML页面,并在用户与应用程序交互时动态更新该页面的Web应用程序 ...对于传统的多页面应用程序来...
  • vue作为单页面应用已经无可挑剔,但在实际应用的时候,我发现真实的需求往往是需要对每张页面都部署一套vue体系(微博监控后台/微信监控后台/配置发布后台/etc), 这时候部署vue进行编译显然并不现实,但是网上又...
  • 技术栈基于 vue-cli 的 Vue js 单页应用项目模板,在 vue-cli 基础上做了一些合理的修改和增强。功能包括:调试、构建、代码规范校验、单元测试、国际化等。 技术栈 Vue、Webpack、ES6、vue-router、Vuex、SASS、...
  • Vue-cli适用于单页应用,而平常做的项目中往往都是页的,网上看了很Webpack多页面的配置,中间遇到很坑,自己看文档,对着做出了这个多页面的商城模板。 项目模板效果: 在线预览: 项目描述 静态页面是用的...
  • 使用vue搭建多页面多系统应用

    千次阅读 2019-02-26 15:29:11
    一、多页面多系统应用 思路 使用Vue搭建应用。所有系统都在同一目录下。配置入口出口。每个系统之间可以链接。每个系统内依然采用Vue单页应用开发。 组件复用性 可以将所有的系统公共组件放到系统目录最...
  • 这是一个vue3.0的移动端项目基础模板,含有自定义组件tabbar,toast弱提示,checkbox,popup,自定义指令v-loading,层级嵌套路由的实现,axios封装,less的引用,css变量应用,GPS定位的实现。vuex基础应用
  • 一直是使用vue官方提供的脚手架工具来做开发单页应用,突发奇想的想做一个应用的打包配置,顺便了解一下webpack的使用。花了几天时间搞定之后才发现了这篇文章《进阶| Vue 2.x + Webpack 3.x + Nodejs 多页面...
  • vue构建多页面应用实例代码分享

    千次阅读 2018-08-02 16:45:11
    最近一直在研究使用vue做出来一些东西,但都是SPA的单页面应用,但实际工作中,单页面并不一定符合业务需求,所以这篇我就来说说怎么开发多页面Vue应用,以及在这个过程会遇到的问题。本文主要和大家介绍用vue构建...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,882
精华内容 12,752
热门标签
关键字:

vue多页面应用模板

vue 订阅