state 含义
控制组件展示形态的数据主要为数据状态和外部参数, 组件的数据结构指的就是 state. 组件作为一个状态机. 会把自身可控的信息存储到 state 中. 并通过 setState 改变 ~
路漫漫其修远兮, 吾将上下而求索
首先写一个基于 es5 prototype 的继承
1 | function Human (name, age) { |
众所周知, 如果只给 img 元素设置 width or height 中的一个属性, 剩下的尺寸属性默认会根据图片的尺寸进行等比缩放. 然后利用图片的尺寸再撑起容器. 获得的容器大小应该就是和图片的宽高比一致的啦 ~
代码实现如下:
1 | <!DOCTYPE html> |
vuex 是专门为 vue 应用程序开发的状态管理工具. 采用了集中的方案管理所有组件的状态. 并以对应的规则约定了状态只能以一种可预测的方式改变. 保证了应用状态的一致性和可维护性…
localStorage 是 html5 新增的本地存储 api, 是通过 js 将数据存储到本地的方法. 一般用于跨页面的数据传递
PS: vuex 能够做到数据的响应式, localStorage 不能做到响应式. 需要自行处理
由于 localStorage 存储的数据不具备响应式特性, 数据改变时无法通知引用它的组件更新. 所以无法用 localStorage 替换 vuex. 但是由于其长效存储的特性, 可以用 localStorage 存储用户编辑一半的表单. 实现本地的草稿箱
默认的 script 标签引入 js 浏览器会立即加载并执行相应的 js 文件. 同时会阻塞后续文档的渲染.
1 | <script src="demo.js"></script> |
添加 async 属性之后, 表示 js 的加载和执行和文档的渲染是并行进行的, 也就是说是异步执行的
1 | <script async src="demo.js"></script> |
添加 defer 属性后, js 文件的加载和文档的渲染是并行的. 但是 js 文件只有在文档渲染完成后(DOMContentLoaded 触发后)才会执行. 如果是需要获取 dom 元素的 js 文件需要使用 defer
1 | <script defer src="demo.js"></script> |