- 博客(76)
- 收藏
- 关注
原创 vue中v-bind=“$attrs“和v-on=“$listeners“的含义
vue中v-bind="$attrs"和v-on="$listeners"的含义;假定自定义了一个组件 ComponentB, props 接收了name, age两个参数, ComponentA在调用ComponentB时这么调用:<componentB :name="_name" :age="_age" :address="_address" :phone="_phone" @playBall="_playBall" @study="_study">而
2021-03-12 17:19:12 2127
原创 常用第三方库
1.cookie.js-cookie:https://www.npmjs.com/package/js-cookie1.1. 安装及引用:npm install js-cookie --saveimport Cookies from 'js-cookie'1.2.用法:1>存入数据至cookie:// Create a cookie, valid across the entire site:Cookies.set('name', 'value');// ...
2020-05-20 23:48:54 278
原创 vue-router的使用方式
step1:下载安装npm i vue-router -Sstep2:main.js中引入import VueRouter from 'vue-router'step3:安装插件Vue.use(VueRouter)step4:创建路由对象并配置路由规则let router = new VueRouter({ routes: [{ path: '/ho...
2019-10-25 20:14:59 209
原创 封装post请求与get请求
1.封装post请求step1:引入axioscode:import axios from 'axios'step2:创建axios实例code:const instance = axios.create({ baseURL: 'https://some-domain.com/api/', timeout: 1000, headers: {'X-Custom...
2019-10-25 11:29:49 1700
原创 vue学习笔记
1.npm引入某个包:step1:vscode终端命令:npm install @xunlei/xl9 --save-dev 命令完成后,会在当前项目的目录文件下引入,如图所示:2.js文件中引用。code:import xl9 from '@xunlei/xl9'2.Deferred2.1.Deferred拥有Promise2.2.Deferred具备...
2019-10-25 10:45:23 457
原创 git回滚提交
references:1.https://www.zhihu.com/question/481783802.https://blog.csdn.net/u010416101/article/details/781426973.https://www.jianshu.com/p/6c32b768a31a4.https://blog.csdn.net/qq_34975710/artic...
2019-10-23 14:42:27 1075
原创 vue学习笔记
0.父子组件的生命周期。父子组件的生命周期1.监听组件的生命周期例:父组件需要在子组件mounted的时候,调用某个函数,常规写法如下:// Parent.vue<Child @mounted="doSomething"/>// Child.vuemounted() { this.$emit("mounted");}这里提供一种特别简单的方式,子组件不需...
2019-10-17 17:51:13 143
原创 vue cli入口文件解析
1.入口文件的概述。在vue cli构建的项目中,main.js是项目的入口文件,定义了vue实例,并引入根组件app.vue,将其挂在到index.html中id为'app'的节点上。如图,main.js,app.vue,index.html文件的结构如下图所示:各个文件的作用:一.main.js,程序入口文件,初始化vue实例并使用需要的插件;二.app.vue...
2019-10-17 15:37:59 651
原创 兼容HTML DOM classList属性
页面DOM里的每个节点均有一个classList对象,我们可以使用里面的方法新增/删除/修改/删除节点上的CSS类。但是在IE9/IE10之前的版本不支持这个属性,下面的代码是为了解决这个问题的。if (!("classList" in document.documentElement)) { Object.defineProperty(HTMLElement.prototype...
2019-10-17 15:16:58 217
原创 Vue.use注册全局插件
step1: 构建插件例如:创建plugin.js文件,在此文件中定义插件。(插件中必须要有install方法,且函数参数为Vue,options)const plugin = { install (Vue, options) { // 添加全局方法或者属性 Vue.myGlobMethod = function () {}; // 添加全局指令 Vu...
2019-10-10 21:30:37 676
原创 Vue路由判断前进后退
//注册全局方法 Vue.prototype.push = (url: string, closeTransition: boolean = false) => { //前进 Vue.prototype.transitionName = "slide-left"; this.$router.push(url);}; Vue.prototype.pop = ...
2019-10-10 21:10:59 3591 1
原创 Vuex学习系列
一.vuex初探二.vuex初探二三.vuex初探三—仓库拆分四.vuex初探—mapState,mapActions五.vuex初探五
2019-10-10 20:51:13 109
原创 计算机网络复习
1、dns解析过程。1>检查浏览器缓存;2>检查系统缓存;3>路由器缓存;4>ISP DNS缓存;5>根域名服务器;6>顶级域名服务器;7>主域名服务器;8>保存结果至缓存。 2、ARP协议。IP地址转换为mac地址。 3、RARP协议。 ...
2018-09-30 17:36:26 150
原创 std::shared_ptr的简单实现
#ifndef STD_SHAREDPTR_H#define STD_SHAREDPTR_H#include <stdint.h>#include <algorithm>using namespace std;template<typename T>class My_SharedPtr{ My_SharedPtr(): ...
2018-09-28 16:01:58 1349
原创 C++面试基础知识复习系列—六
1、strcpy的实现。 char *strcpy(char *dst, const char *src){ if(!dst||!src) return nullptr; char* p=dst; while(*scr!='\0'){ *(p++)=*(src++); } *p='\0';...
2018-09-19 20:15:00 212
原创 C++面试基础知识复习系列—五
1、extern关键字。表明变量或者函数的定义在别得文件中,提示此编译器遇到此变量或者函数时在其他模块寻找定义。1>假定a.h中定义了 int a=10;b.cpp与c.cpp同时include "a.h",则编译不成功,因为a重复定义;2>假定a.h中有static int a=10;则可以,因为b.cpp与c.cpp中的a仅仅是名字相同,地址空间不同;3>假定a....
2018-09-18 15:48:14 144
原创 C++面试基础知识复习系列——四
1、查找;查找算法 平均时间复杂度 空间复杂度 查找条件 顺序查找 O(n) O(1) 无 二分查找 O(log2n) O(1) 有序 哈希查找 O(1) O(n) 无 二叉查找树 O(log2n) 红黑树 O(log2n) B/B+树 O(...
2018-09-11 20:49:50 174
原创 C++面试基础知识复习系列——三
1、STL容器; 容器类型 底层数据结构 有序/无序 可重复 其他 vector 数组 无 是 支持快速随机访问 list 双向链表 无 是 支持快速增删 deque 双端队列 (一个中央控制+ 多个缓冲区) 无 是 1、支持首尾快速增删 ...
2018-09-11 20:02:55 151
原创 C++面试基础知识复习系列——二
1、类的对象在内存中所占空间的分析;参考:https://blog.csdn.net/shufac/article/details/37915147;1>空类,占用一个字节。原因,为了区分不同类的实例。2>在没有虚函数的类的对象中,类的对象所占空间的大小分析方式与struct类型所占空间的大小相同,只需要计算非静态数据成员。因为成员函数的函数地址被保存在的代码段,而数据成员...
2018-09-11 16:06:34 401
原创 C++面试基础知识复习系列——一
1、const关键字的作用。1>修饰变量,说明该变量不可修改;2>修饰指针,分为常量指针与指针常量。example1:int* const p=&a;指针常量,*p=8,ok;p=&b,错误;example2:const int *p=&a;常量指针,*p=8,错误;p=&b,OK;3>修饰引用,常用于形参类型,即有利于...
2018-09-11 13:21:20 269
原创 socket IO
一、I/O模型I/O模型:一个输入操作通常包括两个阶段:1>等待数据准备好;2>从内核向进程复制数据。对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待的分组到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。unix下有五种I/O模型:*阻塞式I/O*非阻塞I/O*I/O复用(select/poll/e...
2018-08-22 21:27:01 229
转载 epoll多路复用API
1、https://blog.csdn.net/displayMessage/article/details/81151646;2、https://blog.csdn.net/zjf280441589/article/details/44206383;
2018-08-01 16:23:27 346
转载 回调函数
1.https://blog.csdn.net/lixiaogang_theanswer/article/details/80400259;
2018-07-22 17:47:39 112
原创 为什么unsigned (-1)表示无符号整数的最大值
1、整数在计算机中的表示。在计算机中,整数采用补码表示。当前主流编译器中整型在内存中占用四个字节,共32位。2、原码、补码、补码。原码:第一位为符号位,其余位表示数值,如-1的原码:1,000...0001(两个1之间32个0)。反码:正数的补码就是其原码;负数的反码为符号位不变,数值位按位取反。如-1的补码为1,111...1110。补码:正数的补码就是其原码。负数的补码为=...
2018-07-20 17:54:17 17714 3
原创 使用STL algorithm来轻松解决几道面试题
1、生成一个序列的全排列。题一:生成N个不同元素的全排列。测试代码://测试函数int main(){ char elements[]={'a','b','c','d'}; const int N=sizeof(elements)/sizeof(elements[0]); std::vector<char> intArray(elements,...
2018-07-18 09:32:33 559
原创 STL复习之算法五
1、next_permutation() 。next_permutation()会取得[first,last)所标示之序列的下一个排列组合。如果没有下一个组合,便返回为false;否则,当前序列被排序成当前序列的下一个序列并且返回为true。算法实现:template <class _BidirectionalIter, class _Compare>bool __ne...
2018-07-17 20:15:10 137
原创 STL复习之算法四
1、unique。算法unique能够移除重复的元素。每当在区间[first,last)内有重复元素群,它便移除该元素群中的第一个以后的连续的重复元素。注意,unique只能移除连续的相邻的连续元素,如果想要移除所有(包括不相邻的元素)重复元素,需要先对序列排序,使所有重复的元素都相邻。测试代码:void traverseEle(const std::vector<int&g...
2018-07-17 16:09:20 173
原创 STL复习之算法三
1、rotate(s,m,l),将区间[m,l)序列的元素整体移动到区间[s,m)前面。返回为void。函数原型:template<class ForwardIterator,class Distance>void __rotate(ForwardIterator first,ForwardIterator middle,ForwardIterator last,Dist...
2018-07-17 10:59:22 135
原创 STL复习之算法二
1、search(s1,e1,s2,e2)。在序列[s1,e1)内寻找序列[s2,e2)第一次出现的位置,若后者并不在前者的区间内,则返回前者区间的末尾,即e1。函数原型: template<typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate> ...
2018-07-16 14:51:16 157
原创 STL复习之算法一
1、set_uinon。即求两集合之并集。注意到两个set集合必须是有序的。实现: template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare> _OutputIterator __set_un...
2018-07-15 13:45:14 141
原创 STL复习之——hashtable
1、二叉搜索树具有对数平均时间的表现,但这样的表现依赖于输入数据具有足够的随机性。hashtable在插入、删除。搜寻等操作上也具有“常数平均时间”的表现,而且这种表现是以统计为基础,不依赖与输入数据的随机性。2、在找元素的存储位置时的使用的hash函数主要有三种。这三种方法都是为了解决不同的元素被hash函数映射到同一位置,引起冲突的问题。一、线性探测法;二、二次探测法;三、开链法。下图是以开链...
2018-07-14 17:58:13 182
原创 STL复习之——红黑树
1、应用:STL中的关联容器,如set、map等都是以红黑树作为底层容器。2、基本定义:2.1、每个节点不是红色就是黑色;2.2、根节点为黑色;2.3、如果节点为红,则其子节点必须为黑。2.4、任一节点至NULL(树尾端),所含 之黑节点数必须相同。 2、插入节点需要旋转的四种情形,《STL源码剖析》第210页~211页。3、调整红黑树的结构的代码。3.1、左旋。template <clas...
2018-07-13 15:46:54 151
原创 Revolver源码解析之——RUDP发送速率控制器
1、功能:实现带宽评估、发送窗口决策、RTT与RTC的计算。2、成员函数解析。[1].处理接收到的ACK。void RUDPCCCObject::on_ack(uint64_t ack_seq){ if(ack_seq <= last_ack_id_) { return; } uint32_t space = (uint32_t)(ack_seq - last_ack_i...
2018-07-11 15:04:21 682
原创 Revolver源码解析之——接收缓冲区与其滑动窗口
1、基本定义:接受缓冲区的滑动窗口的定义。typedef map<uint64_t, RUDPRecvSegment*> RecvWindowMap;key为数据片的ID,value为指向数据片的对象指针。用来接收连续的数据片的队列缓冲定义typedef list<RUDPRecvSegment*> RecvDataList;记录丢失的数据片的ID与丢失时间戳的map。ty...
2018-07-10 21:05:42 300
原创 Revolver源码解析之——发送缓冲区与其滑动窗口
1、发送数据片的结构体定义。//发送数据片typedef struct tagRUDPSendSegment{ uint64_t seq_; uint64_t push_ts_; //进入发送队列的时刻 uint64_t last_send_ts_; //最后一次发送的时刻 uint16_t send_count_; //发送的次数 uint8_t data_[MAX_SE...
2018-07-10 20:29:03 237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人