一、箭头函数(Lambda匿名函数)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript"> /* 创建函数一 */
const aaa = function () {
// todo ....
}; const object = {
/* 创建函数二 */
bbb : function () {
// todo ...
}, /* 创建函数三 */
ccc () {
// todo ...
}
}; /* 创建函数四 */
const ddd = () => {
// todo ...
}; /**
* 箭头函数可理解为Lambda表达式,亦可称为匿名表达式,或者匿名函数
* 函数不再具有名称,只留下参数和函数逻辑,
* 可以调用和声明一体式编写
*
* 语法Syntax
* const fun = (参数列表) => {
* // todo ...
* }
*
* 无参箭头函数
* const fun2 = () => { // todo ... }
*
* 一个参数
* const fun2 = (param) => { // todo ... with param }
* 可以缩写,不需要括号
* const fun2 = param => { // todo ... with param }
*
* 多参数
* const fun2 = (param1, param2) => { // todo ... with params }
*
*
* 如果函数逻辑只有一行语句,可以不需要大括号
* 一行语句
* const oneLine = (n1, n2) => {
* return n1 + n2 ;
* }
* 直接缩写成
* const oneLine = (n1, n2) => n1 + n2 ; // 省略函数体与return关键字
*/ // 箭头函数与this关键字的问题
const object2 = {
method1 () {
setTimeout(function () {
console.log(this); // 这个this是window对象
}, 1000);
setTimeout(() => console.log(this), 1000); // 这个this是这个object2对象
}
}
object2.method1();
// 结论:箭头函数会向外层作用域中一层层查找this,直到This定义并引用this对象【也就是查找最近的this对象】
</script>
</body>
</html>

二、创建案例环境

先使用Vue2方式进行创建:

三、路由概述

路由更像是音译过来的词语 Routing

维基百科给出的解释是:

通过互联网把信息从源地址传输的目的地址的活动

生活概念:路由器

两种机制:路由和转送

路由决定数据包从来源到目的地的路径

转送将输入端的数据转移到合适的输出端

路由表的概念

本质是一个映射表,决定了数据包的指向

四、前端渲染 & 后端渲染

1、网页发展阶段历史:

第一阶段:后端渲染
jsp\php\asp\
html + css + javascript
页面跳转由后端的控制器实现 第二阶段:前后端分离
ajax 技术实现
数据转API传输,维护方便
还是多个页面组成处理 第三阶段:SPA
单页面应用

详细说明:

https://www.bilibili.com/video/BV15741177Eh?p=100

2、URL的Hash & H5的History

首先运行之前创建的案例项目

npm run dev

我们清空浏览器的请求资源再次更改会发现,网页只更新了favicon.icon

其他资源不发生请求,但是URL地址发生了变化

使用HTML5的History对象操作也是一样可以的

pushState是类似压栈的形式操作url

可以使用back回退上一个url,push和back相当于压栈和弹栈的关系

也可以使用fowward

但是使用replaceState跳转,是无法回退的

如果不希望一个一个的回退,可以使用go回退指定索引的url

五、Vue - Router

安装

之前已经在创建案例项目时勾选了router安装,

如果没有也没关系,使用命令进行手动安装

npm install vue-router --save

使用

1、导入路由,调用Vue.use注入

2、创建路由实例,传入映射配置

3、在实例中挂在路由实例

目录

这个router目录就是创建项目时自动生成的

里面的index.js文件:

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld' Vue.use(Router) export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
}
]
})

path表示url路径

name表示路由名称

component表示挂载的组件

不过我们一般的写法会进行拆分解耦,这样解析步骤:

/* 1、 首先引用Vue依赖 */
import Vue from "vue/types/vue";
/* 2、 然后是VueRouter */
import VueRouter from "vue-router"; /* 3、 调用Vue.use方法注册VueRouter */
Vue.use(VueRouter); /* 4、配置需要的路由映射 */
const routerList = [
/* 配置映射关系 url -> component */
] /* 5、创建VueRouter实例 */
const router = new VueRouter({
routes : routerList
}); /* 6、把此router实例挂载到Vue实例中,所以需要导出 */
export default router;

配置映射关系:

第一个案例项目就作为模板保留

创建第二个案例项目,把router目录的index.js文件换成上面的内容【router/index.js】

import Vue from 'vue';
import Router from 'vue-router'; Vue.use(Router); const routerList = [ ]
const router = new Router({
routes : routerList
});
export default router;

移除components的Helloworld.vue组件文件

移除App.vue的标签:

<template>
<div id="app">
<img src="./assets/logo.png">
<router-view/>

</div>
</template> <script>
export default {
name: 'App'
}
</script> <style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

创建Home组件

<template>
<div>
<h3>这是首页Home组件</h3>
<p>首页Home组件的内容</p>
</div>
</template> <script>
export default {
name: "Home"
}
</script> <style scoped> </style>

创建About组件

<template>
<div>
<h3>这是关于About组件</h3>
<p>关于About组件的内容</p>
</div>
</template> <script>
export default {
name: "About"
}
</script> <style scoped> </style>

配置路由:

import Vue from 'vue';
import Router from 'vue-router';
import Home from "../components/Home";
import About from "../components/About"
; Vue.use(Router); const routerList = [
{
path :
'/home', /* 为什么这里是path不是url? 因为完整的url还包括 项目根url(协议头 + 域名(或者IP地址) + 端口号 + 项目根名称路径(可选)) */
name : 'home', /* 名字可以不加 */
component : Home
},
{
path : '/about',
name : 'about'
,
component : About
},

]
const router = new Router({
routes : routerList
});
export default router;

App.vue配置路由标签

<template>
<div id="app">
<router-link to="/home">去首页</router-link>
<router-link to="/about">去关于</router-link>

</div>
</template> <script>
export default {
name: 'App'
}
</script> <style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

运行预览后可以发现其实link标签就是a标签

但是为什么没有显示出来,原因是因为我们还没写view标签

<template>
<div id="app">
<router-link to="/home">去首页</router-link>
<router-link to="/about">去关于</router-link>
<router-view></router-view>
</div>
</template>

上面的URL地址可以看到是

#/home

这种#加路径就是hash的路由方式

【Vue】Re14 Router 第一部分(入门案例)的更多相关文章

  1. Struts2第一个入门案例

      一.如何获取Struts2,以及Struts2资源包的目录结构的了解    Struts的官方地址为http://struts.apache.org 在他的主页当中,我们可以通过左侧的Apache ...

  2. Vue router简单配置入门案例

    { 注意驼峰命名法,不然会报错 } 1.在Views文件夹下创建Vue路由文件,例如: <template> </template>  <script> </ ...

  3. SpringMVC的第一个入门案例

    用户提交一个请求,服务器端处理器在接收到这个请求后,给出一条欢迎信息,在页面中显示. 第一步:导入jar包 在原有Springjar包基础上添加2个jar包 spring-webmvc-4.2.0.R ...

  4. SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)

    SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...

  5. 一、mybatis入门案例

    今天学习了mybatis框架,简单记录一下mybatis第一个入门案例,目标是使用Mybatis作为持久层框架,执行查询数据的SQL语句并且获取结果集 基本步骤: 物理建模 逻辑建模 引入依赖 创建持 ...

  6. vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)

    前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...

  7. vue.js最最最基础的入门案例

    打算自己写一点vue.js从入门到进阶的笔记,方便一些新手从头开始开发的时候,可以参考一下. 写的或许是很简单的文章,提供给新手参考.暂时都是一些入门级别的. 以后会慢慢的加深,进阶,写出一些更好,更 ...

  8. 前端架构之路:使用Vue.js开始第一个项目

    Vue.js做为目前前端最热门的库之一,为快速构建并开发前端项目多了一种思维模式.本文通过一个简单的实例开始上手Vue.js开发.   一.技术准备 笔者建议在开始项目前,对以下两个技术点进行了解. ...

  9. vue 的router的简易运用

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Vue.js开始第一个项目

    前端架构之路:使用Vue.js开始第一个项目   Vue.js做为目前前端最热门的库之一,为快速构建并开发前端项目多了一种思维模式.本文通过一个简单的实例开始上手Vue.js开发. 一.技术准备 使用 ...

随机推荐

  1. idea 使用 mvn clean package 报错 Could not create local repository at

    使用 mac 版本的 idea 打包使用打包命令 mvn clean package 总是报错: [ERROR] Could not create local repository at /Repos ...

  2. Python + redis操作Redis数据库

    Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...

  3. jenkins结合远程仓库

    既然是持续集成,对代码进行构建,我们得获取代码仓库的内容,这里选择我们搭建的gitlab服务器 1.开发工程师的机器 1. 在window上生成ssh-key $ ssh-keygen.exe -t ...

  4. 一个开源且全面的C#算法实战教程

    前言 算法在计算机科学和程序设计中扮演着至关重要的角色,如在解决问题.优化效率.决策优化.实现计算机程序.提高可靠性以及促进科学融合等方面具有广泛而深远的影响.今天大姚给大家分享一个开源.免费.全面的 ...

  5. 09-CentOS软件包管理

    简介 CentOS7使用rpm和yum来管理软件包. CentOS 8附带YUM包管理器v4.0.4版本,该版本现在使用DNF (Dandified YUM)技术作为后端.DNF是新一代的YUM,新的 ...

  6. 简约-Markdown教程

    ##注意 * 两个元素之间最好有空行 * 利用\来转义 我是一级标题 ==== 我是二级标题 ---- #我是一级标题 ##我是二级标题 ##<center>标题居中显示</cent ...

  7. LangGraph实战

    1.概述 前段时间LangChain发布了LangGraph,它引起了很多关注.LangGraph 的主要优势在于它能够实现循环工作流,这对于在 LLM 应用程序中模拟类似代理的行为至关重要.本篇博客 ...

  8. 重复消费Java Stream的三种方法。你选择哪种?

    Java中的Stream一旦被消费就会关闭,不能再次使用了.如果的确有需要该怎么办呢? 这里介绍三种重复消费Stream的方法. 1. 从集合再次创建 这里你都不用往下继续看就知道该怎么办,不过我还是 ...

  9. win10 VMware 关闭虚拟机失败导致再打开时显示连接不上虚拟机的一种解决方法

    VMware关闭虚拟机失败,强行关闭后,再次打开VMware,打开虚拟机时提示连接不上虚拟机,没有访问权限. 先试了退出后,用管理员权限打开,无果. 然后从网上查资料,cmd->services ...

  10. OtterCTF 2018 Forensics

    OtterCTF 2018 Forensics 题单来自NSSCTF [OtterCTF 2018]What the password? [OtterCTF 2018]General Info [Ot ...