添加数据保存功能
为什么要有设计模式
防止代码重复
代码级别的重复
你把相同的三行代码写9 了两遍 那么你就应该重构它
页面级别
你把类似的页面做了 10 遍 那么你就应该想出一个万金油写法
MVC 就是一个万金油
所有的页面都可以使用 MVC 来优化代码结构
不学MVC会怎么样
你将变成外包程序员 不停重复自己,不懂得抽象; 只会调用API,不能提升自己; 只会写业务,不会封装,更不会造轮子,更不会加薪。
那就赶紧学吧
MVC是什么? 每个模块都可以写成三个对象,分别是M、V、C; M - Model(数据模型)负责操作所有数据; V - View(视图)负责所有UI界面; C - Controller(控制器)负责其他; 就这? 是的,意会; MVC没有严格的定义; M、V、C分别要做什么也是很随意的,大概对就行;
抽象思维1
最小知识原则 引入一个模块需要引入hml、css、js 引入一个模块需要引入html、js 引入一个模块需要引入js 你需要知道的知识越少越好; 模块化这一点奠定了基础。 代价 这样做会使得页面一开始是空白的,没内容没样式; 解决方法很多,比如加菊花、加骨架、加占位内容等; 也有人选择用SSR技术来解决,我个人觉得没必要。
抽象思维2
以不变应万变
既然每个模块都可以用M+V+C搞定 那么每个模块我都这样写就好了 不用思考类似的需求该怎么做了
代价
有时候会有一些多余的用不到代码 有时候会遇到特殊情况不知道怎么变通,比如没有html的模块则么做mvc
抽象思维3
表驱动编程 当你看到大批类似但不重复的代码; 眯起眼睛,看看到底哪些才是重要的数据 把重要的数据做成哈希表,你的代码就简单; 这个数据结构知识给我们的红利 代价是没有代价。
抽像思维4
同样的代码写3遍,就应该抽成一个函数 同样的属性写三遍,就应该做成共用属性(原型或类) 同样的原型写三遍,就应该用继承
代价
有时候会造成继承层级太深,无法一下看懂代码; 可以通过写文档、画类图解决
抽象思维5
把所有的对象看成点 一个点和一个点怎么通信 一个点和多个点怎么通信 多个点和多个点怎么通信 最终我们找出一个专用的点负责通信 这个点就是event bus
抽象思维6
view = render(data) 比起操作DOM对象,直接render简单多了; 只要改变data,就可以得到对应的view 代价: render粗犷的渲染肯定比DOM操作浪费性能; 还好我们后面会用到虚拟DOM 虚拟DOM能让render只更新该更新的地方
总结
MVC概念 eventBus的概念 view = render(data)概念 表驱动编程概念 模块化的概念 类什么时候用 继承什么时候用 太抽象? 记不住怎么办? 把这些概念刻意用在项目里 并写文章总结 然后忘掉他们
饥人谷视频
添加数据保存功能
localStorge.setItem(keyName,keyValue) keyName 一个 DOMString,要创建或更新的键名。 keyValue 一个 DOMString,要创建或更新的键名对应的值。