js变量分为
1.基本类型:number、string、boolean、symbol、null、undefined、bigInt,存储在栈内存中
2.引用类型: Function、Object、RegExp、Date、Array、set、map存储在堆内存中
vue组件通讯
1.prop/emit/$attrs/$listeners
2.$ref/$children/$parent
3.provide/inject
4.vuex
5.eventBus
vue生命周期
函数 | data | el | this | methods | props |
---|---|---|---|---|---|
beforeCreate | x | x | o | x | x |
created | o | x | o | o | o |
beforeMount | o | x | o | o | o |
mounted | o | o | o | o | o |
beforeUpdate | o | o | o | o | o |
updated | o | o | o | o | o |
beforeDestroy | o | o | o | o | o |
destroyed | x | x | x | x | x |
activated(keep-alive下的组件) | o | o | o | o | o |
deactivated(keep-alive下的组件) | o | o | o | o | o |
触发顺序
beforeCreate>created>beforeMount>mounted>activated
deactivated:离开组件触发
webpack
1.entry:入口文件,构建其内部依赖图
2.output:输出bundle
3.loader:加载处理(除了js与json外)其他类型的文件
4.plugin:打包优化资源管理
5.mode:配置环境
webpack性能优化优化
1.include/exclude(将需要打包的和不需要打包的分开)
2.第三方依赖抽离(cdn加载)参考链接1(externals方式)
参考链接2(DllPlugin和DllReferencePlugin方式)
3.多进程打包(HappyPack) 参考链接
4.代码压缩(compression-webpack-plugin) 参考链接
5.optimization.splitChunks(抽离公共的代码,防止重复)参考链接
vue双向绑定原理
vue采用数据劫持结合发布者-订阅者模式通过Object.defineproperty函数对数据setter、getter属性进行拦截。数据变化时发布消息给订阅者去更新视图。
Observer:对数据进行劫持的函数
Complier:编译模板的函数
Watcher:
网友评论