Vue+Vue Router+Webpack打包网站基础页面

news/2024/5/20 22:20:54/文章来源:https://zlming.blog.csdn.net/article/details/120688550

Vue+Vue Router+Webpack打包网站基础页面

1、目录结构

在这里插入图片描述

2、package.json所需依赖包

{"name": "vue_router_webpack_demo","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"author": "","license": "ISC","dependencies": {"vue": "^2.6.14","vue-router": "^3.5.2","vue-template-compiler": "^2.6.14","webpack": "^5.58.1","webpack-cli": "^4.9.0"},"devDependencies": {"@babel/core": "^7.15.8","@babel/preset-env": "^7.15.8","babel-loader": "^8.2.2","css-loader": "^6.3.0","sass": "^1.42.1","sass-loader": "^12.1.0","style-loader": "^3.3.0","vue-loader": "^15.9.8","vue-style-loader": "^4.1.3","webpack-dev-server": "^4.3.1"}
}

3、全局安装webpack、webpack-cli、webpack-dev-server依赖

在这里插入图片描述

4、配置webpack.config.js

const path = require('path');// 引入node_modules包下的 vue-loader 插件
const VueLoaderPlugin = require('vue-loader/lib/plugin.js');module.exports = {// 开发模式mode: 'development',// 入口文件entry: './src/main.js',// 出口文件output: {filename: 'build.js',// 将其解析为 绝对路径 如:path.resolve('/win','./files') 返回 '/win/files'path: path.resolve(__dirname, 'dist')},// 使用 vue-loader 插件plugins:[new VueLoaderPlugin()],module:{rules:[{// 匹配 js test:/\.js$/i,// 排除 node_modules 下的jsexclude:/(node_modules)/,use:{// 使用 babel-loader 插件处理jsloader:'babel-loader',options:{presets:['@babel/preset-env']}}},{// 匹配 vuetest:/\.vue$/i,// 使用 vue-loader 插件处理 vueuse:'vue-loader'},{// 匹配 csstest:/\.css$/i,use:['style-loader','css-loader']},{// 匹配 sasstest:/\.s[ac]ss$/i,use:[// 将 js字符串 转化为 style节点'style-loader',// 将 css 转化为 CommonJS模块'css-loader',// 将sass 编译成 css'sass-loader']}]},devServer:{static:'./dist',hot:true,port:8888}
}

5、编写页面

src/components/headEle.vue

<template><div class="head">{{msg}}</div>
</template><script>export default {data: function() {return {msg: '我是头部组件'}}}
</script><style lang="scss" scoped>.head {height: 100px;background-color: palegreen;}
</style>

src/pages/admin.vue

<template><div class="admin"><h4>{{msg}}</h4></div>
</template><script>export default {data: function() {return {msg: '管理页'}}}
</script><style lang="scss" scoped>.admin {flex: 1;background-color: peru;}
</style>

src/pages/list/vue

<template><div class="list"><h4>{{msg}}</h4></div>
</template><script>export default {data: function() {return {msg: '列表页'}}}
</script><style lang="scss" scoped>.list {flex: 1;background-color: papayawhip;}
</style>

src/pages/login.vue

<template><div class="login"><!-- 头部组件 --><head-ele></head-ele><h4>{{msg}}</h4><button @click="handRegister">注册</button><router-link to="/admin" tag="button">管理页</router-link></div>
</template><script>// 引入 组件import headEle from "../components/headEle.vue";export default {data: function() {return {msg: '登录页面'}},methods: {handRegister: function() {this.$router.push('/register');}},components: {headEle: headEle}}
</script><style lang="scss" scoped>.login {position: absolute;top: 0px;bottom: 0px;width: 100%;background-color: palevioletred;}
</style>

src/pages/register.vue

<template><div class="register"><!-- 头部组件 --><head-ele></head-ele><h4>{{msg}}</h4><button @click="handLogin">登录</button></div>
</template><script>// 引入 组件import headEle from "../components/headEle.vue";export default {data: function() {return {msg: '注册页面'}},methods: {handLogin() {// 以下三种方式皆可回退// this.$router.back();// this.$router.go(-1)this.$router.push('/')}},components:{headEle:headEle}}
</script><style lang="scss" scoped>.register {position: absolute;top: 0px;bottom: 0px;width: 100%;background-color: pink;}
</style>

src/layout/components/leftEle.vue

<template><div class="left"><h4>{{msg}}</h4><ul><router-link to="/admin/layout" tag="li">管理页</router-link><router-link to="/admin/list" tag="li">列表页</router-link></ul></div>
</template><script>export default {data: function() {return {msg: 'admin-left'}}}
</script><style lang="scss" scoped>.left {width: 250px;background-color: palegoldenrod;ul {padding: 10px;li {list-style: none;height: 50px;line-height: 50px;text-align: center;color: whitesmoke;background-color: dimgray;margin-bottom: 2px;cursor: pointer;}}}
</style>

src/layout/components/titleEle.vue

<template>	<div class="title">		<h4>{{msg}}</h4>	</div></template><script>	export default {		data: function() {			return {				msg: 'admin-title'			}		}	}</script><style lang="scss" scoped>	.title {		height: 100px;		background-color: palegreen;	}</style>

src/layout/index.vue

<template>	<div>		<title-ele></title-ele>		<div class="content">			<left-ele></left-ele>			<router-view></router-view>		</div>	</div></template><script>	import titleEle from './components/titleEle.vue';	import leftEle from './components/leftEle.vue';	export default {		components: {			titleEle: titleEle,			leftEle: leftEle		}	}</script><style lang="scss" scoped>	.content {		display: flex;		position: absolute;		top:100px;		bottom:0px;		width: 100%;	}</style>

src/app.vue

<template>	<div>		<!-- 组件加载 -->		<router-view></router-view>	</div></template><script>	export default {			}</script><style lang="scss" scoped>	</style>

src/main.js

import Vue from 'vue';import VueRouter from 'vue-router';Vue.use(VueRouter);import app from './app.vue';import login from './pages/login.vue';import register from './pages/register.vue';import admin from './pages/admin.vue';import list from './pages/list.vue';import layout from './layout/index.vue';// 路由配置const routes = [{		path: '/',		component: login	},	{		path: '/register',		component: register	},	{		path: '/admin',		component: layout,		redirect: '/admin/layout',		children: [{				path: '/admin/layout',				component: admin			},			{				path: '/admin/list',				component: list			}		]	}]// 创建路由实例const router = new VueRouter({	routes});new Vue({	render: e => e(app),	router}).$mount('#app')

dist/index.html

<!DOCTYPE html><html>	<head>		<meta charset="utf-8">		<title></title>		<style>			* {				margin: 0;				padding: 0;			}		</style>	</head>	<body>		<div id="app"></div>		<script src="build.js"></script>	</body></html>

6、使用webpack命令打包main.js

在这里插入图片描述

7、打包成功,dist下出现build.js文件

在这里插入图片描述

8、使用webpack server开启服务实现代码热更新

在这里插入图片描述

9、复制地址到chrome浏览器访问/端口,出现如下图则成功

在这里插入图片描述

10、下图为测试端口是否正常gif

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_711937.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里辟谣:不会高薪聘请黑阿里网站的人;苹果欲用 iPhone 替代身份证和护照;Python 3.9.0b4 发布| 极客头条

整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 一分钟速览新闻点&#xff01; 阿里辟谣&#xff1a;不会…

织梦根目录感染abc.php,织梦SEO优化:织梦dedecms根目录下robots.txt文件设置详解! - 张俊SEO...

对于dedecms这个建站程序&#xff0c;我想大多数站长都曾经用过&#xff0c;他功能之强大&#xff0c;几乎能秒杀一切内容管理系统&#xff0c;而且所有页面都能生成静态的html文件&#xff0c;对于SEO优化也是相当有优势的&#xff0c;说道SEO优势&#xff0c;就不得不提到rob…

linux 新增网络接口,为网络接口添加多IP - CentOS 7系统配置上的变化解析_Linux教程_Linux公社-Linux系统门户网站...

一、nmtui手工添加IP看一下当前网络设备的IP&#xff0c;为了精简指令输出&#xff0c;指令就要复杂一些了&#xff1a;[rootCentOS7 ~]# nmcli -t -f IP4.ADDRESS dev show enp0s3IP4.ADDRESS[1]:ip 192.168.150.110/24, gw 192.168.150.254[rootcentos7 ~]#[rootcentos7 ~]…

dedecms网站轮播本地显示为什么上传到服务器就不显示了,dedecms后台上传图片实现图片轮播的方法...

dedecms后台上传图片实现图片轮播的方法发布时间&#xff1a;2020-09-15 11:55:13来源&#xff1a;亿速云阅读&#xff1a;110作者&#xff1a;小新dedecms后台上传图片实现图片轮播的方法&#xff1f;这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获…

java frame linux_JAVA环境(下) - Android框架简介_Linux编程_Linux公社-Linux系统门户网站...

上节讲到了JAVA框架代码和应用程序的关系&#xff0c;那么框架代码和驱动层是怎么联系的呢&#xff1f;这就是这一节的内容&#xff1a;JNIjava使用一种叫做jni的技术来支持对C/C代码的调用&#xff0c;在anroid中jni的代码放在froyo/frameworks/base/core/jni下&#xff0c;当…

无SSH工具部署网站到火腿云

无SSH工具, 部署成品网站到火腿云服务器 文章目录无SSH工具, 部署成品网站到火腿云服务器前言一、准备工作二、部署流程总结前言 画了9块买了个火腿云服务器来部署我的项目,但是网上几乎查不到火腿云的教程,而且其他教程大多是自建服务器部署网站的教程,看起来体验也不是很好,…

全流程 部署Vue+Node网站到阿里云

文章目录前言一、搞到一个使用权二、远程连接SSH工具远程连接VNC远程连接三、安装可视化面板四、进入可视化面板面板收尾工作五、部署网站部署前端文档部署后端文档导入数据库六、常见翻车解决方法总结前言 白嫖的服务器到期了… 被迫再做一次, 也好, 上次摸摸索索的, 也没正儿…

php vue seo,处理 Vue 单页面 SEO 的另一种思路

(设置vue 单页面meta info信息&#xff0c;如果需要单页面SEO&#xff0c;可以和 prerender-spa-plugin形成更优的配合)单页面应用在前端正大放光彩。三大框架 Angular、Vue、React&#xff0c;可谓妇孺皆知。随着单页面应用的普及&#xff0c;人们在感受其带来的完美的用户体验…

宝塔如何备份网站_宝塔备份网站怎样还原_服务器备份数据恢复教程

之前介绍了“宝塔面板自动备份网站和数据库到FTP存储空间教程”&#xff0c;那么宝塔备份的网站数据怎么恢复呢&#xff1f;所以本文来教大家怎么把网站从备份数据还原。宝塔备份的数据在什么地方&#xff1f;宝塔面板后台可以自动或者手动给网站数据备份&#xff0c;备份后数据…

php教育网站设计案例_南广东区优秀网站设计案例集锦第四期

南广东优秀网站设计案例集锦第四期第一名&#xff1a;吴嘉文佛山资深设计师01个人介绍亚里士多德曾经说过&#xff1a;“我们每一个人都是由自己一再重复的行为所铸造的。因而优秀不是一种行为&#xff0c;而是一种习惯。”嘉文是2010年加入中企至今&#xff0c;至今从事网站设…

计算机专业论文选题网站方面,5大网站汇总,搞定新颖的计算机专业毕业设计网站汇总...

原标题&#xff1a;5大网站汇总&#xff0c;搞定新颖的计算机专业毕业设计网站汇总2021年了&#xff0c;很多计算机专业的同学都会问&#xff0c;我不想再做XX管理系统、XX选课系统了&#xff0c;哪里有一些新颖的毕业设计题目可以参考&#xff1f;或者做新颖的毕业设计应该浏览…

让自己的网站变成暗黑模式

让自己的网站变成暗黑模式只需要一行简简单单的CSS代码就可以完成啦&#xff1a;html[themedark-mode] {filter: invert(1) hue-rotate(180deg); }来看看最终的效果如何&#xff1a;从图中我们可以看得&#xff0c;网站的整个背景都变成了黑色的&#xff0c;字体变成了白色的。…

小米集团王嵋因错误表达致歉并请辞;亚马逊云服务出现中断,许多网站受到影响;deepin 深度系统更新发布|极客头条...

整理 | 郑丽媛头图 | CSDN 下载自东方 IC快来收听极客头条音频版吧&#xff0c;智能播报由出门问问「魔音工坊」提供技术支持。「极客头条」—— 技术人员的新闻圈&#xff01;CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技…

php 加载慢,PHP版网站缓存加快打开速度的方法分享

说明&#xff1a;1&#xff0c;在服务器缓存了压缩过的文件&#xff0c;再次访问减少再压缩时间&#xff0c;降低CPU占用率。2&#xff0c;通过设置客户端文件缓存时间&#xff0c;降低再次请求次数&#xff0c;可降低85%以上。3&#xff0c;图片因为已经是压缩格式&#xff0c…

php网站模板怎么修改,自己做网站如何用好并自主修改网上的免费模板

用过PHP开源程序的人都知道&#xff0c;采用wordpress程序&#xff0c;上传到空间后&#xff0c;每个人的网站都是一样的&#xff0c;一个默认的版面。这是本人比较不喜欢的版面&#xff0c;一张老到掉牙的图片永远呆在网站顶部&#xff0c;黑白搭配的主色调也实在让人难以恭维…

怎么在服务器添加充值网站,云服务器怎么弄充值

云服务器怎么弄充值 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。用户的弹性云服务器已绑定EIP&#xff0c;但是无法连接到Inter…

token会被截取吗_做抖音搬运其他网站视频可以吗?

HI,亲爱的朋友你好&#xff0c;我是陈奶爸&#xff0c;专注于短视频营销与创收&#xff01;最近有不少朋友问&#xff0c;可不可以从其他视频网站搬运作品到抖音呢&#xff1f;这个问题是要分情况对待&#xff1a;第一种&#xff1a;直接下载与上传&#xff01;比如从快手上下载…

使用 filter 置灰网站需要注意!

最近在做一个置灰网站的需求&#xff0c;我跟大部分网站一样使用了 CSS 的 filter 滤镜功能&#xff0c;但是事情并没有原本的那么简单&#xff0c;如果使用不当&#xff0c;还会引发线上事故。位置问题代码如下&#xff1a;<!DOCTYPE html> <html lang"en"…

腾讯回应 PC 微信扫描浏览器 cookies;约会网站 228 万用户数据泄露;Java 1.0 发布 25周年 | 极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01;CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。整理 | 丁恩华出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;快来收听极客头条音频版吧&a…

编程网站 Perl.com 被劫,售价 19 万美元

整理 | 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 1987 年诞生的 Perl&#xff0c;尽管近年来不如 Python 和 Rust 这类年轻的编程语言时常活跃在大众视野&#xff0c;但 33 年后的如今依旧排在 TIOBE 榜前二十&#xff0c;Perl 必定有其不可取代的优…