TS ES6 VUE 相关
1 自执行函数:
;(function(){ }())
;(function(){})()
独立的作用域,具有数据封装性;立即执行的特点
2 TS 原始数据类型:
boolean、string、number bigint symbol undefined null void 枚举类型 字面量类型 any 和 unknown 是TS 的顶端类型 ,never 是 TS的尾端类型 null 是object 类型,是所有类型向上溯源的顶端对象,undefined 除外 Symbol ES2015 引入的原始类型,主要的应用场景是对象的属性名 Symbol 的创建通过Symbol() 或者 Symbol.for() 来创建;unique symbol 必须用const 来标识,主要为了生命类的属性或接口的属性 是固定的值 可选运算符,obj?.prop ,不会抛出obj === null |undefined 时的异常; 空值运算符 a??b 当a 为undefined 或 null 时 返回b 否则返回a 泛型中的联合类型: type A = E.A | E.B 公共的值(联合类型) , type A = E.A & E.B 并集(交叉类型) Ts 断言 expr as const expr as T expr as unknow as T; 非空断言 OBJ !.length 编译器遇到! 非空断言,会无条件的相信对象不是undefined 和null ,谨慎使用 typeof 返回值 和 instanceof 返回true和 false TS 的namespace 利用了 JS 的立即执行函数,来实现的
3 ES6 相关
import ref from 'vue' -- 报错 ,应该是 import {ref} from 'vue' 是否加括号,取决于export 对象是否加了default
4 VUE 相关
1 Vue CLI 4.5以下,对应的是Vue2
2 父子组件通信 props ,子父组件通信 emit ,深层次组件间的通信 父provide 孙... inject, 其他方式 总线BUG、VUEX、分包modules
3 VUE3 解构的是普通数据类型 const {name} = {name:'zs',age:10} ,会丢失响应性, 此时应该用toRefs 来处理解构的数据 const {name} = toRefs({name:'zs',age:10});
解构的是对象中的对象时不会丢失相应性, const {people} = {country:'china',people:{name:'zs',age:10}}
4 vue-router 相关: 所有的路由跳转后的组件,最终是在App.vue 里的 <router-view></router-view> 中渲染的, 注意 router.push 中 name 和 path 的区别, 传递参数 query 和 params 的区别, 动态路由的应用,
嵌套路由的应用(父组件包含<router-view/> , 父组件的子组件中也包含 <router-view/> 配置routes 时,嵌套路由为children:[path:'',component:Module])