当生命周期销毁后,并没有将组件中的计时器销毁,虽然页面上看不出来,但是如果在控制台打印的话,会发现计时器还在运行,所以要销毁计时器,避免代码一直执行
const timer = setInterval(() =>{
// 某些定时器操作
}, 500);
// 通过$once来监听定时器,在beforeDestroy钩子可以被清除。
this.$once('hook:beforeDestroy', () => {
clearInterval(timer);
})
jsx 不是一门新的语言,是一种新的语法糖。让我们在 js 中可以编写像 html 一样的代码。
允许 XML 语法直接加入到 JavaScript 代码中,让你能够高效的通过代码而不是模板来定义界面
当做一个不可见的包裹元素,减少不必要的 DOM 元素,整个结构会更加清晰。
动态组件,当你多个组件需要通过 v-if 切换时,可以使用 is 来简化代码
需要提供一个 render 方法, 接受一个参数(createElement 函数), 方法内根据业务逻辑,通过 createElement 创建 vnodes,最后 return vnodes
createElement 函数, 三个参数, 第一个参数是 html 标签或自定义组件,第二个参数一个 obj(包含 props, on…等等), 第三个参数 children(通过 createElement 构建, 或者字符串)
slot, 插槽, 在使用组件的时候, 在组建内部插入东西.组件封装的时候最常使用到
vue 中会对整个 list 进行遍历, 判断使用到的某些属性是否发生变更, 从而更新发生变更的 item
所以 key 属性才会显得很重要, 它会告诉你, 我那个 item 发生变更, 而不是去检测整个 list
异步路由
异步加载
分屏加载
按需加载
延时加载图片
cdn
域名拆分
ajax 是概念 异步交换数据的概念
fetch 是浏览器提供的 webAPI 原理是基于 xmlHttpRequest 的封装
axios 是第三方库 基于 xmlHttpRequest 的封装 使用更便捷
单向数据流:所有状态的改变可记录、可跟踪,源头易追溯;所有数据只有一份,组件数据只有唯一的入口和出口,使得程序更直观更容易理解,有利于应用的可维护性;一旦数据变化,就去更新页面(data-页面),但是没有(页面-data);如果用户在页面上做了变动,那么就手动收集起来(双向是自动),合并到原有的数据中。
双向数据流:无论数据改变,或是用户操作,都能带来互相的变动,自动更新。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章