首页 > 前端开发 > 正文

使用vue开发web前端页面 ssm框架vue前端项目怎么跑

2023-09-28 23:36:31 | 我爱编程网

今天我爱编程网小编整理了使用vue开发web前端页面 ssm框架vue前端项目怎么跑相关信息,希望在这方面能够更好的大家。

使用vue开发web前端页面 ssm框架vue前端项目怎么跑

如何使用vue多页面开发与打包


这次给大家带来如何使用vue多页面开发与打包,使用vue多页面开发与打包的注意事项有哪些,下面就是实战案例,一起来看一下。
前段时间做项目,技术栈是vue+webpack,主要就是官网首页加后台管理系统 根据当时情况,分析出三种方案
一个项目代码里面嵌两个spa应用(官网和后台系统)
分开两套项目源码
一套项目源码里面就一个spa应用
思考:
直接否定了一套项目源码里一个spa应用(ui样式会相互覆盖,如果没有代码规范后期比较难维护)
两套源码的话,后台可能开两个端口,然后需要用nginx反向代理可能比较麻烦,而且前端开发也比较麻烦麻烦,毕竟需要维护两个git仓库,两套git上线流程,可能会损耗很多时间。
对自己的技术(盲目)自信,也想尝尝鲜,分析出需求也不算很复杂。选了第一种方案,就是多个单页面应用在一套源码里面
上一张多页面的结构图

下载vue spa模板
npm install vue-cli -g
vue init webpack multiple-vue-amazing改造多页面应用
npm install glob --save-dev修改src文件夹下面的目录结构

在util.js里面加入
/* 这里是添加的部分 ---------------------------- 开始 */
// glob是webpack安装时依赖的一个第三方模块,还模块允许你使用 *等符号, 例如lib/*.js就是获取lib文件夹下的所有js后缀名的文件
var glob = require('glob')
// 页面模板
var HtmlWebpackPlugin = require('html-webpack-plugin')
// 取得相应的页面路径,因为之前的配置,所以是src文件夹下的pages文件夹
var PAGE_PATH = path.resolve(dirname, '../src/pages')
// 用于做相应的merge处理
var merge = require('webpack-merge')
//多入口配置
// 通过glob模块读取pages文件夹下的所有对应文件夹下的js后缀文件,如果该文件存在
// 那么就作为入口处理
exports.entries = function () {
var entryFiles = glob.sync(PAGE_PATH + '/*/*.js')
var map = {}
entryFiles.forEach((filePath) => {
var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
map[filename] = filePath
})
return map
}
//多页面输出配置
// 与上面的多页面入口配置相同,读取pages文件夹下的对应的html后缀文件,然后放入数组中
exports.htmlPlugin = function () {
let entryHtml = glob.sync(PAGE_PATH + '/*/*.html')
let arr = []
entryHtml.forEach((filePath) => {
let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
let conf = {
// 模板来源
template: filePath,
// 文件名称
filename: filename + '.html',
// 页面模板需要加对应的js脚本,如果不加这行则每个页面都会引入所有的js脚本
chunks: ['manifest', 'vendor', filename],
inject: true
}
if (process.env.NODE_ENV === 'production') {
conf = merge(conf, {
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
},
chunksSortMode: 'dependency'
})
}
arr.push(new HtmlWebpackPlugin(conf))
})
return arr
}
/* 这里是添加的部分 ---------------------------- 结束 */
webpack.base.conf.js 文件
/* 修改部分 ---------------- 开始 */
entry: utils.entries(),
/* 修改部分 ---------------- 结束 */
webpack.dev.conf.js 文件
/* 注释这个区域的文件 ------------- 开始 */
// new HtmlWebpackPlugin({
// filename: 'index.html',
// template: 'index.html',
// inject: true
// }),
/* 注释这个区域的文件 ------------- 结束 */
new FriendlyErrorsPlugin()
/* 添加 .concat(utils.htmlPlugin()) ------------------ */
].concat(utils.htmlPlugin())
webpack.prod.conf.js 文件
/* 注释这个区域的内容 ---------------------- 开始 */
// new HtmlWebpackPlugin({
// filename: config.build.index,
// template: 'index.html',
// inject: true,
// minify: {
// removeComments: true,
// collapseWhitespace: true,
// removeAttributeQuotes: true
// // more options:
// //
// },
// // necessary to consistently work with multiple chunks via CommonsChunkPlugin
// chunksSortMode: 'dependency'
// }),
/* 注释这个区域的内容 ---------------------- 结束 */
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
/* 该位置添加 .concat(utils.htmlPlugin()) ------------------- */
].concat(utils.htmlPlugin())引入第三方ui库
npm install element-ui bootstrap-vue --save分别在不同的页面引入不同的ui index.js
import BootstrapVue from 'bootstrap-vue'
Vue.use(BootstrapVue)admin.js
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)上面多页面的配置是参考网上的,而且网上的思路大都很相似,核心就是改多个entry,配置完成了之后,开发的时候也是发现不了问题的,然后大概就开发了一个月,开发完之后对官网进行性能分析时发现,webpack打包的vendor.js网络加载时间特别长,导致首屏的白屏时间非常长,最终通过-webpack-bundle-analyzer分析得到了结论
npm run build --report
你会发现vendor.js包含了index.html和admin.html的共同部分,所以这个vendor包注定会很大很冗余
解决思路
既然是vendor过大引起加载速度慢,那就分离这个vendor就好了。我是这样想的,把各个页面中都使用到的第三方代码提取至vendor.js中,然后各个页面中用到的第三方代码再打包成各自的vendor-x.js,例如现有页面index.html、admin.html,则最终会打包出vendor.js、vendor-index.js、vendor-admin.js。
webpack.prod.conf.js 文件
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor-admin',
chunks: ['vendor'],
minChunks: function (module, count) {
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(path.join(dirname, '../node_modules')) === 0 &&
module.resource.indexOf('element-ui') != -1
)
}
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor-index',
chunks: ['vendor'],
minChunks: function (module, count) {
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(path.join(dirname, '../node_modules')) === 0 &&
module.resource.indexOf('bootstrap-vue') != -1
)
}
}),再次分析,一切都很ok,vendor.js被分离成了vendor.js、vendor-index、vendor-admin.js

本来以为解决了CommonsChunkPlugin的分离vendor.js的问题,就可以了,然后打包出来发现index.html和admin.html都少了一个引入(各自对应的那个vendor-xx.js)

解决方案
这个问题其实就是HtmlWebpackPlugin的问题 把原来的 chunksSortMode: 'dependency'改成自定义函数的配置,如下
util.js文件
chunksSortMode: function (chunk1, chunk2) {
var order1 = chunks.indexOf(chunk1.names[0])
var order2 = chunks.indexOf(chunk2.names[0])
return order1 - order2
},最终实现
每个页面加载各自的chunk
每个页面有不同的参数
每个页面能共享公共chunk
浏览器缓存,性能更好
如果还嫌慢的话,开启gzip
感想
大功告成了,虽然配置看起来很简单,不过我当时开发的时候,思考了很久,所以假如你CommonsChunkPlugin和HtmlWebpackPlugin不熟悉或者只会用别人第三方的配置表,估计会踩大坑,比如说,CommonsChunkPlugin不指定chunks,默认是什么?minChunks大多数人只会写一个数值,然而自定义一个函数的写法其实才是最强大的,根据我个人的经验chunks结合minChunks自定义函数的写法,能解决几乎所有CommonsChunkPlugin灵异的事件。
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
怎样使用Vue实现倒计时按钮

怎样利用Vue写一个双向数据绑定

使用vue开发web前端页面 ssm框架vue前端项目怎么跑

前端的VUE怎么使用


我用VUE做项目也有一段时间了,对于VUE来说现在已经比较熟悉了,但是关于VUE的入门文章却一直没有写过,那么今天就给大家带来几个案例,好好介绍下VUE这种好用的小工具。
相关视频教程推荐:Vue.js 教程推荐:2018最新的5个vue.js视频教程精选
1.本篇文章使用的vue版本是2.4.2,可能会和新版有不一样的地方,大家要注意。
2.现在我也是假设您有基础的html,css,javascript的知识,也已经看过了官网的基本介绍,对vue有了一个大概的认识了,了解了常用的vue指令(v-model,v-show,v-if,v-for,v-on,v-bind等)!如果刚接触前端的话,你看着文章可能会蒙圈,建议先学习基础,掌握了基础知识再来看!
3.下面的实例,建议大家边看文章边动手做!这样思路会非常清晰,不易混乱!也不会觉得文章长(文章长是为了让大家看得更信息,贴了很多重复的代码,这些代码。html,css等完全可以跳过看)。如果只看文章,你可能未必会看完,因为文章我讲得比较细,比较长!
4.这几个实例,摘自我自己的平常练习的项目,代码已经提到github上面了(vue-demos)。欢迎大家star。!
2.什么是vue
vue是现在很火的一个前端MVVM框架,它以数据驱动和组件化的思想构建,与angular和react并称前端三大框架。相比angular和react,vue更加轻巧、高性能、也很容易上手。大家也可以移步,看一下vue的介绍和核心功能官网介绍。简单粗暴的理解就是:用vue开发的时候,就是操作数据,然后vue就会处理,以数据驱动去改变DOM(不知道有没有理解错,理解错了指点下)。
下面就是一个最简单的说明例子
代码如下
html
<div id="app">
<p>{{ message }}</p>
<input v-model="message">
</div>
js
new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})相信也不难理解,就是input绑定了message这个值,然后在input修改的时候,message就改了,由于双向绑定,同时页面的html({{ message }})进行了修改!
好,下面进入例子学习!
3.选项卡
原理分析和实现
这个很简单,无非就是一个点击切换显示而已。但是大家也要实现。如果这个看明白了,再看下面两个!这个实例应该只是一个热身和熟悉的作用!
这个的步骤只有一步,原理也没什么。我直接在代码打注释,看了注释,大家就明白了!
完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style>
body{
font-family:"Microsoft YaHei";
}
#tab{
width: 600px;
margin: 0 auto;
}
.tab-tit{
font-size: 0;
width: 600px;
}
.tab-tit a{
display: inline-block;
height: 40px;
line-height: 40px;
font-size: 16px;
width: 25%;
text-align: center;
background: #ccc;
color: #333;
text-decoration: none;
}
.tab-tit .cur{
background: #09f;
color: #fff;
}
.tab-con div{
border: 1px solid #ccc;
height: 400px;
padding-top: 20px;
}
</style>
<body>
<div id="tab">
<div>
<!--点击设置curId的值 如果curId等于0,第一个a添加cur类名,如果curId等于1,第二个a添加cur类名,以此类推。添加了cur类名,a就会改变样式 @click,:class ,v-show这三个是vue常用的指令或添加事件的方式-->
<a href="javascript:;" @click="curId=0" :class="{'cur':curId===0}">html</a>
<a href="javascript:;" @click="curId=1" :class="{'cur':curId===1}">css</a>
<a href="javascript:;" @click="curId=2" :class="{'cur':curId===2}">javascript</a>
<a href="javascript:;" @click="curId=3" :class="{'cur':curId===3}">vue</a>
</div>
<div>
<!--根据curId的值显示div,如果curId等于0,第一个div显示,其它三个div不显示。如果curId等于1,第二个div显示,其它三个div不显示。以此类推-->
<div v-show="curId===0">
html<br/>
</div>
<div v-show="curId===1">
css
</div>
<div v-show="curId===2">
javascript
</div>
<div v-show="curId===3">
vue
</div>
</div>
</div>
</body>
<script src="vue.min.js"></script>
<script>
new Vue({
el: '#tab',
data: {
curId: 0
},
computed: {},
methods: {},
mounted: function () {
}
})
</script>
</html>VUE的使用方法大概就是这些了,通过这个案列相信你也对vue有一些了解了,更多精彩请关注Gxl网其它相关文章!


相关阅读:
怎样用CSS3和JS做出上升的方块动态背景
CSS3的主要功能应用
CSS3中过渡动画怎么使用

使用vue开发web前端页面 ssm框架vue前端项目怎么跑我爱编程网

ssm框架vue前端项目怎么跑

可以使用参数来设置,得到符合不同需要的编译结果。之后即可以将打包的文件部署到服务器上。
学习前端框架Vue的步骤如下:了解Vue框架的基本概念和特点。了解Vue框架的基本架构和工作原理,包括Vue的视图层渲染、数据绑定、组件化和路由等功能。学习Vue框架的基本语法和使用方法。
前端开发不需要配编译环境了,只需要把需要的各种库、工具在命令行界面安装就行。具体过程网上搜“从零开始搭建vue项目”。
脚手架里带的Node部分,主要充当的是WebServer,跟浏览器有什么关系?最后都是要Webpack打包成纯粹的html/css/js项目的。
对于vue的使用可以分为两种使用形式:引入vue.js文件,在js中将vue实例化;通过node安装第三方包--vue,搭建脚手架,用脚手架将页面分成几个组件编写,从而利用组件来搭建页面。
上一节安装了flask,我们现在需要安装vue前端框架,需要使用vue-cli方便安装和管理。

以上就是我爱编程网小编给大家带来的使用vue开发web前端页面 ssm框架vue前端项目怎么跑全部内容,希望对大家有所帮助!
与“使用vue开发web前端页面 ssm框架vue前端项目怎么跑”相关推荐
web前端开发vue项目 ssm框架vue前端项目怎么跑
web前端开发vue项目 ssm框架vue前端项目怎么跑

VUE在前端里面主要是做什么的呢?Vue是一个js框架。什么叫框架?个人理解是对原生JS,html,css的功能进行封装之后形成的一个语言。比如,你需要盖一座房子,你用原生js,html,css写代码相当于你用手一块砖一块砖地垒。而使用Vue,Vue已经给你了一面墙,一根房梁,一扇门,你需要做的是把门墙梁拼成房子。它帮助你提高开发效率。你只需要按照它的规矩来写三段部分:&lt;tem

2023-09-18 11:23:52
web前端开发vue项目实战 vue项目怎么运行
web前端开发vue项目实战 vue项目怎么运行

前端项目中如何搭建JQuery、Vue等开发环境这次给大家带来前端项目中如何搭建JQuery、Vue等开发环境,前端项目搭建JQuery、Vue等开发环境的注意事项有哪些,下面就是实战案例,一起来看一下。vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscode重新定义(redefined)了代码编辑器。当前市面上常用的轻型代码编辑器主要是:sublime,notepa

2023-09-23 10:06:42
web前端开发项目目录结构 如何使用vue多页面开发与打包
web前端开发项目目录结构 如何使用vue多页面开发与打包

阿里巴巴技术文章分享:阿里云无线&前端团队是如何基于webpack实现前端工程化的_html/css_WEB-ITnose背景前端经历了初期的野蛮生长(切图,写简单的特效)——为了兼容浏览器兼容性而出现的各种类库(JQUERY,YUI等——mv*(饱暖思淫欲,代码多了,也就想到怎样组织代码结构,backbone,angularjs等)——工程化(利用grunt,gulp,yeoman做项目

2023-10-05 15:41:26
php爬取vue框架页面 如何使用vue配置多页面
php爬取vue框架页面 如何使用vue配置多页面

vue框架怎么下载vue框架怎么下载?vue框架下载步骤:1.在浏览器地址栏中输入百度网址www.baidu.com,回车,打开百度首页。2.在页面文本框中输入关键字“vue.js”,点击“百度一下”,在搜索结果中,点击第一个链接。3.在打开的网页上,找到并点击“GITHUB”按钮.4.在新弹出的网页上,左侧找到“Branch:***”,点击下拉框,可根据需求选择下载

2023-09-27 02:18:42
web前端vue开发app 如何使用vue+webpack做一个项目(附代码)
web前端vue开发app 如何使用vue+webpack做一个项目(附代码)

如何使用vue+webpack做一个项目(附代码)这次给大家带来如何使用vue+webpack做一个项目(附代码),使用vue+webpack做一个项目的注意事项有哪些,下面就是实战案例,一起来看一下。利用webpack给生产环境和发布环境配置不同的接口地址在开发时,前后端分离同时进行开发。前端调用后端给的接口也是在局域网内部的。但是,当项目推到线上的时候,会从真实服务器上获取接口

2023-09-16 00:52:36
web前端vue开发项目实例 web前端开之网站搭建框架之vue详解
web前端vue开发项目实例 web前端开之网站搭建框架之vue详解

使用vue-cli+webpack如何搭建vue这篇文章主要介绍了使用vue-cli+webpack搭建vue开发环境的方法,需要的朋友可以参考下在这里我们需要首先下载node,因为我们要用到npm包下载,是基于node的废话不多说,我们直接进入正题下载node,同时需要下载git,以后我们就在git上输入命令来搭建我们的vue环境git用的是linux命令不要问为什么

2023-10-04 03:20:40
web前端开发项目答辩 使用Django和vue开发的网页一般毕业答辩问什么?
web前端开发项目答辩 使用Django和vue开发的网页一般毕业答辩问什么?

使用Django和vue开发的网页一般毕业答辩问什么?在毕业答辩中,针对使用Django和Vue开发的网页,可能会被问到以下问题:为什么选择Django和Vue作为开发框架?你在开发网页时遇到了哪些挑战,如何解决这些问题?你如何设计和实现前端和后端之间的数据交互?你如何进行用户认证和授权,保障网页的安全性?你如何优化网页的性能和用户体验?

2023-09-14 11:54:05
web前端开发根目录 前端项目开发<Vue>
web前端开发根目录 前端项目开发<Vue>

网页开发时,图片出不来怎么办?在网页开发中,如果图片无法显示,请在谷歌等现代浏览器当中按下F12键,查看控制台是否给出了错误提醒,对于没有加载正确的图片,会给出错误提示。在绝大多数情况下,图片无法显示/出不来,主要是由于图片路径不正确所造成的,因此请检查你图片的路径是否正确。路径的基本知识路径分为绝对路径和相对路径:相对路径-以引用文件之网页所在位置为参考基础,而建立出的

2023-10-02 19:27:08