类型兼容性TS中的类型兼容性是基于结构子类型的。结构类型是一种只使用其成员来描述类型的方式。 与Java不同,Java的强制转换是基于继承的,只有有继承关系的对象才可以进行转换。 即只要对象中的成员有包含关系,则可以进行类型转换。如, 1234567891011interface Named { name: string;}class Person { name: string;}let p: Named;// OK, because o...
TypeScript特点1
基础类型VoidTS中增加了void类型,用于表示没有任何类型,一般也是用于一个函数没有返回值,但是与其他语言不同的是,TS允许一个变量直接声明为Void型(虽然这没什么用)。 1let unusable: void = undefined; void型变量只能被赋值undefined,null Null 和 Undefined这里的null与undefined与JS中基本一致,其是所有类型的子类,即所有的变量都可被赋值为null与undifined。 Nevernever表示那些永远不...
考研遇到了问题!!!
回顾考研与2020想想考试复习考研已经有整整3个多月了,大概一月下旬就开始复习了! 首先复习了两门科目 数学 英语 数学采用了看视频的方式进行了一轮复习,到四月十号左右就完成了。 英语的话由于最开始没有资料,只有几套真题,所以我直接上手真题。当然,错误率非常之高,问题只有一点:单词和短语积累不够,感觉每一道题,只要单词,短语90%理解,那基本不会错的。所以后面开始用百词斩背单词。由于之前背过,所以考研的词汇还有事多天就要背完了,当然会忘记,所以在考研的过程中,要不间断的背下去。 总体回...
Vue源码1-从初始化到响应式原理
首先介绍后面要用到的几个类: Observer类:用于将一个数据变为响应式(可被观测) Watcher类:一个依赖(一个指令对应一个依赖),一旦有一个指令用到了某个对象属性,那么就会新建一个Watcher作为订阅者。 Dep类:依赖管理器,一个对象属性对应一个Dep,其有一个内部属性subs用于存放依赖。 Vue初始化Vue原型是在src/instance/idnex.js中定义的: 1234567891011121314151617181920212223242526//src/in...
JavaScript中的&,&&,|,||
简单区分&,&&,|,||&& 位与运算符 — 用于位运算(非数字会通过primitive原则转换为数字)—- 左右全为1才为1 || 位或运算符 — 用于位运算(非数字会通过primitive原则转换为数字)—- 左右有一个1结果就为1 &&&& 逻辑运算符(与) — 用于逻辑运算 (非Boolean型会被转化为Boolean型进行对比)—- 如果第一个值(转换后)为true,则返回后一个值。 如果第一个值(转...
Vue中动态添加路由的问题
起始前端的权限控制一直是一个可繁可简的问题,要想简单,直接写入所有路由,然后将每个路由的权限写入路由原信息中,然后在router.beforeEach中判断这个路由是否该用户的权限,进行reject()或者next()。这样做很简单,但是Vue提供了一个addRouter的api,用于动态注册路由,由此可以用这个api来根据用户角色进行动态路由注入。 问题动态注入路由后404问题一般我们将公共路由放置到路的初始化中,这其中就包括404页面,他的path一般是*****,也就是匹配所有路由,...
Vue中的插槽与keep-alive
插槽初次真正接触插槽是在Elementui中的表格中在自定义列的内容时 1234567891011121314<el-table-column label="姓名" width="180"> <template slot-scope="scope"><el-popover trigger="hover" plac...
Vue中异步请求更新data导致数据变为非响应式的问题
问题最近在项目遇到一个棘手的问题,看了1天才发现是异步与Vue的数据更新机制导致了结果与预期不一致。 最开始的代码流程是这样: 通过一个请求拿到一组数据data1,包括下一个请求的关键字 在第一个请求的回掉函数中使用for循环利用上一个数组的关键字发送多个子请求得到对应的datan,并在每个子请求的回调中对data1和datan进行对比,然后给data1添加一个字段key 在第一个请求的回调中把修改后的data1赋给Vue实例的data中 产生的问题在Vue实例中的data1对象中,原来...
react中的事件绑定
遇到的问题最近想试一下React,之前一直用Vue在写东西。稍微看了几篇教程后,就开始写,能够基本运行起来,可能是因为项目比较简单吧。但是也遇到了几个问题,首先就是React的事件绑定问题: 我第一次的写法是: 12345handleEvent(){ console.log("test")}<Button onClick="handleEvent"> </Button> 这样普通的点击事件是能够正常触发的...