1.MVVM模式
- View是视图层,也就是用户界面。前端主要由HTML和CSS来构成,为了更方便地展现ViewModel或者Model层的数据。
- Model是指数据模型,泛指后端进行的各种业务逻辑处理和数据操控,主要围绕数据库系统展开。这里的难点主要在于需要和前端约定统一的接口规则。
- ViewModel由前端开发人员组织生成和维护的视图数据层。在这一层,前端开发者从后端获取得到Model数据进行转换出来,做二次封装,以生成符合View层使用预期的视图数据模型。视图状态和行为都封装在ViewModel里。这样的封装使得ViewModel可以完整地去描述View层。
什么是mvvm
在MVVM架构中,是不允许数据和视图直接通信的,只能通过ViewModel来通信,而ViewModel就是定义了一个Observer观察者。ViewModel是连接View和Model的中间件。
- ViewModel能够观察到数据的变化,并对视图对应的内容进行更新。
- ViewModel能够监听到视图的变化,并能够通知数据发生变化。
为什么要使用MVVM
- 低耦合:视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候,View也可以不变。
- 可复用:可以把一些视图逻辑放到一个ViewModel里面,让很多View重用这段视图逻辑。
- 独立开发:开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
- 可测试:界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
MVVM实现者
- Vue.js
- AngularJS
- ReactJS
- 微信小程序
2.CMD命令操作
命令简介
cmd是command的缩写.即命令行 。
运行操作
CMD命令:开始->运行->键入cmd
常用CMD命令:
- Windows 中有两种命令:内部命令和外部命令。内部命令即内置在命令行解释器中的命令,不需要额外的程序,如 dir 、copy 等。外部命令是以可执行文件的形式(扩展名通常为 exe 或 com)存在于磁盘上,这就意味着该程序必须存在,否则 Windows 是找不到该命令的,如 format.com 。
- 每条命令输完后须回车,方开始运行,并得到运行结果。命令行解释器把提示符“>”和回车键间的字符串视为一条命令。如果这字符串确实符合 Windows 命令语法,就执行它,执行完后又回到提示符状态,否则命令行解释器给出错误信息。
- 要学习某个命令,最好的方法是阅读该命令的联机帮助。可以输入“命令名 /?”或“help 命令名”来查看命令的联机帮助,例如“format /?”。
盘符名称+冒号:
盘符切换,默认为C盘。举例:输入“D:”(注意冒号要用英文的),然后回车,即可以切换到D盘
dir
显示出当前路径下所有文件以及文件夹,以及隐藏的文件。
cd
输入"cd+空格+名称"就可以进入一个单级目录 例如:cd vm
cd..
输入"cd.."就可以回退到上一级目录
cd目录1\目录2...
进入多级目录 例如:cd vm\bin(cd和vm间有一个空格)
cd\
回退到盘符目录
md
创建目录
3.CDN
CDN的全称Content Delivery Network,即内容分发网络。
- CDN是构建在网络之.上的内容分发网络。
- CDN使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
- CDN依靠部署在各地的边缘服务器,包括中心平台的负载均衡、内容分发、调度等功能模块。
CND主要特点
本地Cache加速:提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性
镜像服务:消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量。
远程加速:远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问的速度
带宽优化:自动生成服务器的远程Mirror (镜像) cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能。
集群抗攻击:广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效地预防黑客入侵以及降低各种D.D.o.S攻击对网站的影响,同时保证较好的服务质量。
支持协议
支持协议如静动态加速(图片加速、https带证书加速) 、下载加速、 流媒体加速、企业应用加速、手机应用加速。
4.ES6-键值对
什么是键值对?
键值对( 'key= value ')
顾名思义,每一个键会对应一个值。
举个例子:
- * 身份证号和你本人是绑定的关系。每一个身份证号(键)都会对应一个小可爱(值)。
- * 我们在登录微信或者游戏时,需要输入手机号验证身份。系统会向改手机号发送一条验证短信
- * 这里的手机号码(键),对应的接收用户就是值。
每个键对应响应的值,当按下响应的键时,就会输出响应的结果。
键:就是存的值的编号。
值:就是要存放的数据。
Set 集合是什么
- Set 对象是值的集合,可以按照插入的顺序迭代它的元素。Set 集合中的元素只会出现一次,即 Set 集合中的元素是唯一的。
const set = new Set([1,2,3,4,5]);
set增删改查:
<script>
const s =new Set();
// add:添加
s.add('a').add('b')
console.log(s.size);//2
console.log(s); //Set(2) {'a', ‘b}
// delete :则除
const result = s.delete('a')
console.log(result); //true
console.log(s.size); //1
console.log(s);//Set(1) {'b'}
// has:判断是否是其成员 havehas
const resu1tone = s.has( 'a')
const resultTwo = s.has( 'b')
console.log(resu1tone); //false
console.log(resultTwo); //true
// clear:清空成员
s.clear()
console.log(s.size);//0
</script>
数据结构:
<script>
// ES6提供了新的数据结构set。
//它类似与数组,但是成员的值都是唯一的,没有重复的值。
//创建set数据结构
// const s = new Set()
// Set函数可以接收一个数组作为参数,用来初始化。
const s = new Set([1,2,3,3,4,4])
console.log(s);
console.log(s.size);
//利用set进行数组去重
let arr = [1,22,33,33,44,44]
let set = new Set(arr)
console.log(set);
console.log([...set]);
</script>
在Set集合中,键和值是一样的,键就是值,值就是键。
Map对象
Map对象用来保存键值对。
在:Map对象中任何值(对象或者原始值)都可以作为一个键(任何数据类型)或一个值。