视频链接:https://www.bilibili.com/video/BV1V5411K7rT?vd_source=9545770e4a2968c05878ffac8589ec6c
视频选集:P26— P45
Java微服务 + 分布式 +全栈项目
安装地址:https://code.visualstudio.com/
安装下面的插件:

ECMAScript 6.0(简称ES6 )是JavaScript语言的下一代标准,2015年6月正式发布。它的目标,是使得]avaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript方言还有Jscript和ActionScript )
let定义变量有作用范围,同时不能声明多次
<body>
<script>
//定义 变量
{
var a = 1;
let b = 2;
}
console.log(a)
console.log(b) //b is not defined
var m = 1;
var m = 2;
let n = 10;
let n = 20;i //'n" has already been declared
console.log(m)
console.log(n)
</script>
</body>
// 1、声明之后不允许改变
const PI = "3.1415926"
PI = 3 // TypeExror: Assignment to constant variable
// 2、一但声明必须初始化,否则会报错
const MY_AGE // Missing initializexin const declaratione
解构赋值是对赋值运算符的扩展
他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取
//1、数组解构
//传统
let a = 1,b = 2, c = 3
console.log(a,b, c)
//ES6
let [x, y,z] = [1,2,3]
console.log(x, y,z)
//2、对象解构,
let user = {name: 'Helen', age: 18}
//传统
let namel = user.name
let age1 = user.age
console.log(namel,agel)
//ES6
let{name,age} = user //注意:结构的变量必须是user中的属性
console.log(name,age)
模板字符串相当于加强版的字符串,用反引号`,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式
//字符串插入变量和表达式。变量名写在${}中,${}中可以放入JavaScript表达式。
let name = "Mike"
let age = 27
let info = `My Name is $ {name} , I am $ {age+1} years old next year.`
console.log(info)
<body>
<script>
//传统方式定义对象
const name = "lucy"
const age = 20
const user1 = {name:name, age:age}
console.log(user1)
//es6
const user2 = {name,age}
console.log(user2)
</script>
</body>
拓展运算符(…)用于取出参数对象所有可遍历属性然后拷贝到当前对象
//1、拷贝对象
let personl = {name : "Amy", age: 15}
let someone = {...person1 }
console.log(someone)// {name : "Amy", age: 15},
// 2、合并对象
let age = {age: 15}
let name = {name : "Amy" ]
let person2 = {...age, . ..name}
console.log(person2) //{age: 15,name: "Amy"}
箭头函数提供了一种更加简洁的函数书写方式。
基本语法是:参数=>函数体
箭头函数多用于匿名函数的定义
<body>
<script>
//传统方式定义函数
var f1 = function(a) {
return a
}
console.log(f1(3))
//es6使用箭头函数定义
//参数=〉函数体
var f2 = a => a
console.log(f2(4))
var f3 = function(m,n){
return m+n
}
//es6
var f4 = (m,n) => m+n
console. log(f4(4,5))
/script>
</body>
在为AngularJS工作之后,Vue的作者尤雨溪开发出了这一框架。他声称自己的思路是提取Angular中为自己所喜欢的部分,构建出一款相当轻量的框架。Vue最早发布于2014年2月。作者在Hacker News、Echo JS 与Reddit的javascript版块发布了最早的版本。一天之内,Vue就登上了这三个网站的首页。Vue是Github上最受欢迎的开源项目之一。同时,在JavaScript框架/函数库中,Vue所获得的星标数已超过React,并高于Backbone.js、Angular 2、jQuery等项目。
Vue.js是一款流行的JavaScript前端框架,目的是简化Web开发。Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,实现视图与模型的交互
创建文件夹vuejs,将vue.min.js.引入文件夹·

<body>
<script src="vue.min.js">< / script>
<div id = "app">
<!--插值表达式-->
{{message}}
</div>
<script>
new Vue({
el:"#app',
data:{
message:'hello vue'
}
})
</script>
</body>
这就是声明式渲染:Vue.js的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进DOM的系统
这里的核心思想就是没有繁琐的DOM操作,例如jQuery中,我们需要先找到div节点,获取到DOM对象,然后进行一系列的节点操作
单项绑定:v-bind 【用在标签属性上面,通过指令获取data定义变量值】

简写:

双向绑定:v-model
当数据发生变化的时候,视图也会跟着发生变化;数据模型发生了改变,会直接显示在页面上;当视图发生变化的时候,数据也会跟着同步变化;用户在页面上的修改,会自动同步到数据模型中去

v-on:事件名称 = “调用方法"
简写:@事件名称
<body>
<div id="app">
<button v-on: click="show()">事件绑定</ button>
<button @click="show()">事件绑定</ button>
</div>
<script src="vue.min.js"></script>
<script>
new Vue({
el: '#app',
data: {
keyword: '尚硅谷'
},
methods:{
show( ){
console.log( "show .....")
}
}
})
</script>
</body>

v-if:条件判断
v-else

v-for


created方法:在页面渲染之前执行
mounted方法:在页面渲染之后执行


axios是独立于vue的一个项目,可以用于浏览器和node.js 中发送ajax请求



element-ui是饿了么前端出品的基于Vue.js的后台组件库,方便程序员进行页面快速布局和构建。
官网: http://element-cn.eleme.io/#/zh-CN
其中的组件比如表单,按钮的格式可以直接复制代码使用

浏览器的内核包括两部分核心∶
Chrome浏览器内置V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
脱离浏览器环境也可以运行JavaScript,只要有JavaScript引擎就可以。Node.js是一个基于Chrome V8引擎的JavaScript运行环境:即 Node.js内置了Chrome的V8引擎,可以在 Node.js环境中直接运行JavaScript程序。,
在Node.js 中写JavaScript和在 Chrome浏览器中写JavaScript基本没有什么不一样。哪里不一样呢?
如果你想开发类似JavaWeb的简单的后端程序,那么学习Node.js是一个非常好的选择。如果你想部署一些高性能的服务,那么学习Node.js 也是一个非常好的选择
通常他会被用来作一个BFF层,即 Backend For Frontend(服务于前端的后端),通俗的说是一个专门用于为前端业务提供数据的后端程序。

BFF层的作用是让前端有能力自由组装后台数据,减少大量的业务沟通成本,加快业务的迭代速度
无论是数据聚合还是数据剪裁,这类程序的特点是不需要太强大的服务器运算能力,但是对程序的灵活性有较高的要求,这两个特点都正好和Node.js的优势相吻合。
NPM全称Node Package Manager,是 Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是 Node.js的包管理工具,相当于前端的Maven



在nodejs环境中无法直接执行es6模块化代码,需要es6代码转换es5才可以执行,所以用下面的转码工具

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源
从图中我们可以看出,Webpack可以将多种静态资源js、css、less转换成一个静态文件,减少了页面的请求

