一、路由:
1、后端路由:
对于普通网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;
2、前端路由:
对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash之间有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现;
3、在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由!!!
二、安装:
三、使用:
1、导入及创建对象:
<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8"/>
<metaname="viewport"content="width=device-width,initial-scale=1.0"/>
<metahttp-equiv="X-UA-Compatible"content="ie=edge"/>
<title>路由</title>
<scriptsrc="./lib/vue.js"></script>
<!--1.安装vue-router路由模块-->
<scriptsrc="./lib/vue-router.js"></script>
<style></style>
</head>
<body>
<divid="app">
<!--<ahref="#/login">登录</a>
<ahref="#/register">注册</a>-->
<!--router-link默认渲染成一个a标签-->
<router-linkto="/login"tag="span">登录</router-link>
<router-linkto="/register">注册</router-link>
<!--这是vue-router提供的元素,专门用来当做占位符的,将来,
路由规则,匹配到的组件,就会展示到这个router-view中去-->
<!--我们可以把router-view认为是一个占位符“留坑”-->
<router-view></router-view>
</div>
<script>
varlogin={
template:"<h1>登录组件</h1>%于项目的信息,
//比如:项目的作者,git地址,入口文件、命令设置、项目名称和版本号等等,一般情况下这个文件是必须要有的,
//方便后续的项目添加和其他开发人员的使用。)
//(--save、-S参数意思是把模块的版本信息保存到dependencies(生产环境依赖)中,
//即你的package.json文件的dependencies字段中)
//npmijquery-S导入jquery
//--save、-S参数意思是把模块的版本信息保存到dependencies(生产环境依赖)中,
//即你的package.json文件的dependencies字段中
//由于ES6的代码,太高级了,浏览器解析不了,需要进行转换
import$from"jquery";
$(function(){
$("li:odd").css("backgroundColor","blue");
$("li:even").css("backgroundColor",function(){
return"#"+"D97634";
});
});
//1.webpack能够处理JS文件的相互依赖关系;
//2.webpack能够处理JS的兼容问题,把高级的、浏览器不能识别的语法,转为
//低级的,浏览器能正常识别的语法;
//webpack要打包的文件的路径打包好的输出的文件的路径
//因版本不一样,无法进行文件的转换,在package.json中导致写下以下两行代码
//"dev":"webpack--modedevelopment",
//"build":"webpack--modeproduction"这样才能将main.js转为bundle.js
//使用webpack-dev-server这个工具,来实现自动打包编译的功能:是一个用来快速搭建本地运行环境的工具
//1.运行npmiwebpack-dev-server-D把这个工具安装到项目的本地开发依赖;
//2.安装完毕后,这个工具的用法和webpack命令的用法,完全一样;
//3.由于,我们是在项目中,本地安装的webpack-dev-server,所以,无法把它当作脚本命令,
//在powershell终端中直接执行;(只有那些安装到全局-g的工具,才能在终端中正常执行)
//4.webpack-dev-server这个工具,如果想要正常运行,要求,在本地项目中,必须安装webpack;
//5.webpack-dev-server帮我们打包生成的bunld.js文件,并没有存放到实际的物理磁盘上,
//而是,直接托管到了电脑的内存中,所以,我们在项目根目录中,根本找不到这个打包好的bundle.js
//6.我们可以认为,webpack-dev-server把打包好的文件,以一种虚拟的形式,托管到了咱们项目的根目录中,
//虽然我们看不到它,但是,可以认为和distsrcnode_modules平级,有一个看不见的文件,叫做bundle.js
//"dev":"webpack-dev-server--open--port8081--contentBasesrc--hot",
//-直接打开-端口号-要显示的页面路径(这下面的index.html)-减少源代码的刷新
六、webpack.config.js:
constpath=require("path");
//导入在内存中生成HTML页面的插件
//只要是插件,都一定要放到plugins节点中去
//这个插件的两个作用:
//1.自动在内存中根据指定页面生成一个内存的页面;
//2.自动,把打包好的bundle.js追加到页面中去
consthtmlWebpackPlugin=require("html-webpack-plugin");
//这个配置文件其实就是一个JS文件,通过NODE中的操作,向外暴露一个配置对象
module.exports={
entry:path.join(__dirname,"./src/main.js"),//入口,要打包的文件
output:{
//输出相关配置
path:path.join(__dirname,"./dist"),//指定打包好的文件,输出到哪个文件夹目录中去
filename:"bundle.js"//指定输出的文件名称
},
mode:"development",//因为版本不一样,需要添加这个才能完成输出!!!
plugins:[
//配置插件的节点
newhtmlWebpackPlugin({
//创建一个在内存中生成HTML页面的插件
template:path.join(__dirname,"./src/index.html"),//指定模板页面,将会根据指定的页面路径,
//去生成内存中的页面
filename:"index.html"//指定生成的页面的名称
})
]
};
//在控制台输入webpack对项目进行打包,此时webpack进行以下几步:
//1.首先,webpack发现,我们并没有通过命令的形式,给它指定入口和出口;
//2.webpack就会去项目的根目录中,查找一个叫做'webpack.config.js'的配置文件;
//3.当找到配置文件后,webpack会去解析执行这个配置文件,当解析执行完配置文件后,
//就得到了配置文件中,导出的配置对象;
//4.当webpack拿到配置对象后,就拿到了配置对象中,指定的入口和出口,然后进行打包构建。
七、package.json:
{
"name":"vue",
"version":"1.0.0",
"description":"",
"main":"webpack.config.js",
"dependencies":{
"jquery":"^3.4.1",
"webpack-cli":"^3.3.5"
},
"devDependencies":{
"html-webpack-plugin":"^3.2.0",
"webpack":"^4.35.2",
"webpack-dev-server":"^3.7.2"
},
"scripts":{
"test":"echo\"Error:notestspecified\"&&exit1",
"dev":"webpack-dev-server--open--port8081--contentBasesrc--hot",
"build":"webpack--modeproduction"
},
"keywords":[],
"author":"",
"license":"ISC"
}
八、webpack-dev-server配置命令的第2种方式:比较繁琐版
如果您觉得本文的内容对您的学习有所帮助:
关键字:
html