认识设计模式
为了解决一类问题而给出的简洁而优化的解决方法
单例模式
一个构造函数一生只能创建一个实例
核心代码
let instince = null
function singleton = (){if(!instince)instince = new 构造函数 return instince}
问题:不能随便传递参数
之前都是通过new的方式现在是通过函数调用的方式得到对象
单例模式变形
第一次变形:
在全局值暴露一个变量
使用闭包和自执行函数
第二次变形:解决参数问题
在构造函数的原型对象上定义一个方法
第三次变形:解决和 new 使用的问题
策略模式
出现原因:代码的阅读性和维护性低
作用:节省if条件的书写
核心:我们准备一个数据结构,里面保存的就是
发布订阅模式
就是我们自己模拟一个事件侦听器
作用:把想要做的事情放到一个函数中,当想要执行的时候触发函数
单页面应用程序(SPA)
SPA:single page application
就是一个网页只有一个结构
配合一个入口文件,假如叫做index.html
这个内容的加载和实现依靠我们的路由实现
切换方式
1,就是通过#(hash)(哈希)值的改变来切换
2,通过我们的历史记录(history)
相对麻烦,而且需要服务器支持
多使用在:移动端 / pc端的后台管理系统
第一步:
获取hash
语法:window . location . hash
事件:hashchange(哈希值改变)
这个事件要绑定给window
第二步:
需要一个入口的结构
用来渲染我们要展示的内容的
开发方式
组件化开发
开发类型
面向过程
面向对象
模块化开发
每一个js文件就是一个模块
组件化开发
是一套完整的结构:html + css + js
SPA是属于组件化开发