自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 简单的双向绑定

vue双向绑定的简单实现

2022-09-06 17:19:43 266 1

原创 便携式空调

自研便携式空调项目。

2022-06-28 09:51:07 172

原创 React条件渲染

在前端的开发当中,我们始终都要进行一些标签显隐,在vue中,由于vue.js的存在,我们可以使用v-if或者v-show对于一个标签进行显隐,而在React中,需要使用js中的判断语句去创建元素表示当前的状态,然后通过React来更新UI。import React from 'react';function Hello(props) { return <h1>hello world!</h1>;}function Hi(props) { return &

2021-09-10 18:05:38 119

原创 React生命周期

在组件创建、组件属性更新、组件被销毁的过程中,总是伴随着各种各样的函数执行,这些在组件特定时期,被触发执行的函数,统称为组件的生命周期函数。组件的生命周期一共有三个阶段:挂载、更新、卸载。1.挂载就是组件初始化的时候调用的方法,也就是说,这些方法在组件的生命中只能执行一次;2.更新就是组件的某部分属性或者状态发生改变,就会去执行的方法,在组件的生命中既可以执行0次,也可以执行多次;3.卸载就是在组件被销毁的时候执行的方法,执行之后就意味着组件的生命到头了,因此,在组件的生命中也只能执行一次。

2021-09-06 16:57:47 175

原创 React的事件处理

React 元素的事件处理和 DOM 元素的很相似,但是有一点语法上的不同:React 事件的命名采用小驼峰式(camelCase),而不是纯小写。 使用 JSX 语法时你需要传入一个函数作为事件处理函数,而不是一个字符串。原生DOM的写法:<button onclick="handler">点击</button>React的写法:<button onClick={this.handler}>点击</button>在 React .

2021-09-01 19:59:29 90

原创 this.setState的详细用法

1.为什么不要直接对state进行赋值?如果直接对this.state复制是不会去更新视图的,this.setState的原理是同一个队列来实现state的更新的,将需要更新的state放入到状态队列中,在一定时间段之后,合并并更新state,然后进行渲染.而直接对this.state赋值是不会有这些操作的,因此不要对state进行直接赋值.2.this.setState为什么是异步的?this.setState的操作是异步的,是为了提升性能对state的更新进行批量操作,官方文档中的原话:

2021-08-31 16:02:58 4471

原创 React的state

statestate是一个类函数组件的私有属性,只能由本组件初始化,由本组件修改和访问,不能被外部访问或者修改;如果更新它就会重新渲染用户界面,也就是说,用户的界面是随着state的状态改变而改变的。创建一个时钟:1.创建初始的时钟暴漏出来:Clock.jsimport React from 'react';class Clock extends React.Component{ constructor(props) { super(props);

2021-08-30 19:06:18 99

原创 React组件

组件react的组件有两种,一是函数组件,本质就是js的函数;二是class组件,是一个继承于React.Component的组件。1.函数组件function Welcome(props) {//组件名称必须要以大写开头,小写会被认为是html原生的标签 return <h1>hello {props.name}</h1>}函数接收一个参数就是组件的传入值。2.class组件class Welcome1 extends React.Comp..

2021-08-27 11:46:16 87

原创 React元素渲染

jsx的学习以及超级简介:jsx既不是字符串也不是HTML;看起来像模板语言,但是JavaScript的全部功能;const element = <h1>Hello, world!</h1>;详情:https://www.tslang.cn/docs/handbook/jsx.html元素渲染:在下载并且安装react之后,就会出现最基本的元素渲染,下图是将多余文件和代码删除之后的结果,将引入的App.js的文件,暂时可以将App看成一个组件,将组件App.

2021-08-25 19:36:22 212

原创 React写hello world!

安装reactnpm install -g create-react-app //安装脚手架create-react-app my-app //创建项目遇到的问题:An unexpected error occurred: “http://registry.cnpmjs.org/react: Hostname/IP does not match certificate’s altnames: Host: registry.cnpmjs.org. is not in the cert’s altn

2021-08-24 14:28:39 96

原创 js 实现数组去重

1. 使用filter函数2. 使用set<template> <d2-container> {{arr}} {{set}} </d2-container></template><script>export default { name: 'index', data(){ return { arr:[1,1,2,3,4,2,3,10,5,6,6,7,8,1,56,56,56.

2021-03-18 14:55:51 93

原创 Echarts多图表屏幕自适应

在每一个的图表的定义部分加上如下代码:var myChart=echarts.init(document.getElementById("main6"));let sizeFun = function () { myChart.resize()//myChart根据自己的所定义的}window.addEventListener('resize', sizeFun )...

2020-08-29 16:35:26 122

原创 网络:ARP协议

在实际的应用当中我们会遇到这样的问题,比如:我们直到一个机器得IP地址,但不知道相应的硬件地址。地址解析协议就是用来解决这样的问题地址解析协议ARP解决这个问题的方法是在主机ARP高速缓冲中存放一个从IP地址到硬件地址的映射表,并且这个映射表在不断的更新。过程:当主机A需要向本局域网上的B主机发送数据,就需要在APR高速缓冲中查找B的IP地址,如果有就在ARP高速缓冲中查找其硬件...

2019-08-22 20:38:41 214

原创 网络:TCP

概念:TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。特点:1.面向连接2.每一条TCP连接只能是点对点3.TCP提供可靠交付的服务4.TCP提供全双工通信5.面向字节流TCP协议报文段的首部格式:1.源端口和目的端口:数据从哪来,要到哪里去2.序号TCP是面向字节流的,在一个TCP连接中传送的字节流中的每一个字节都按顺序编号3....

2019-08-13 22:12:01 115

原创 Linux:信号

概念:信号是进程之间时间异步通知的一种方式,属于软中断。种类:用kill -l 可以查看系统定义的信号列表信号的处理方式:三种1.忽略此信号2.执行此信号的默认处理动作3.调用对应的信号处理函数 ( 这个信号处理函数一般是程序猿在执行时指定的),要求内核在处理信号时切换用户态执行这个函数,这就叫捕捉一个函数。信号的产生:1.通过终端按键产生信号2.调用系...

2019-08-10 21:31:31 91

原创 Linux:管道

什么是管道?管道是Unix最古老的进程间通信方式我们把从一个进程连接到另一个进程的一个数据流称为管道管道分类1.匿名管道#include<unistd.h>int pipe(int fd[2])fd:文件描述符数组,其中fd[0]表示读端,fd[1]表示写端返回值:成功返回0,代码:写入管道,再从管道读取#include<st...

2019-08-09 18:51:17 179

原创 网络:高级IO之IO多路转接

select系统由select函数来实现多路复用。这个函数用来让我们的程序监控多个文件描述符的状态变化。程序会停在select这里等待,直到被监视的文件描述符一个或者多个发生变化。函数原型如下:#include <sys/select.h>int select(nfds, readfds, writefds, exceptfds, timeout)nfds:...

2019-08-06 09:20:21 497

原创 网络:HTTP

HTTP协议定义了浏览器怎么向万维网请求万维网文档,以及服务器怎么把万维网文档传给浏览器,HTTP是面向事务的应用层协议。所谓面向事务就是指一系列的信息交换,这些交换的信息是一个整体,要么这些信息全部交换,要么就不交换。HTTP不仅能传送超文本跳转信息所必须的信息,而且也能传输任何能在互联网上得到的信息。HTTP概念:每个万维网网点都有一个服务器进程,用来监视TCP的端口80,...

2019-08-06 00:02:10 309

原创 网络:网络基础

1.OSI七层模型OSI七层互联网模型称为开放式系统互联参考模型。它把网络分成7层,每一层都有相关的,相对应的物理设备;OSI七层模型是一种框架性的设计方法,其主要的功能就是帮助不同类型的主机实现数据传输。优点:将服务、接口、概念明确的区分开来,通过七个层次化的结构模式是不同的系统不同的网络实现可靠的通讯。2.TCP/IP五层协议TCP/IP是一组协议的...

2019-08-02 20:55:37 75

原创 C++:智能指针

1.为什么需要只能指针?写代码时,离不开申请空间,而申请的空间都赋予了指针,指针自己申请的空间,需要用户对其进行管理。2.智能指针的使用和原理我们可以利用对象的生命周期来控制程序的资源。在对象构造时获取资源,控制这对资源的访问,在对象生命周期内始终保持有效,最后在对象析构的时候,释放资源。所以我们可以把管理一份资源交给一个对象。两点好处:1.不需要自己显示的释放资源;2...

2019-07-31 22:53:46 57

原创 项目:文件压缩

1.什么是文件压缩?通过某一个机制让文件变小 并且能够通过某种方式对其进行还原。2.分类:无损压缩:解压缩之后的文件与原文件完全相同有损压缩:解压缩之后的文件与原文件不相同,不能还原和原文件一模一样的模式 ,比如:图片有高清变标清,变不回去。3.为什么有文件压缩?1.压缩数据的存储容量,减少存储空间。2.可以提高数据的传输效率,提高通讯的效率3.文件压缩也是对文件...

2019-07-24 18:02:09 254

原创 C++的类型转化

C++中为了加强类型转化的可视性,引入了四种命名的强制类型转化操作符。为什么C++需要四个类型转化?1.C风格转化没有统一的关键字和标识符,出现错误不容易排查,而C++有统一标识符美丽与排查和检视;2.C++对类型转换进行了细分,满足不同需求的不同转换标识符;1.static_caststatic_cast用于非多态类型的转化,编译器隐式执行的任何类型转换都可用stati...

2019-07-22 14:54:37 83

原创 星际密码 牛客网

链接:https://www.nowcoder.com/questionTerminal/34f17d5f2a8240bea661a23ec095a062?toCommentId=47888来源:牛客网星际战争开展了100年之后,NowCoder终于破译了外星人的密码!他们的密码是一串整数,通过一张表里的信息映射成最终4位密码。表的规则是:n对应的值是矩阵X的n次方的左上角,如果这个数不...

2019-06-30 22:00:46 472 2

原创 Linux:基础IO

- 对之前编写的自主shell进行修改,使其支持输入/输出/追加重定向#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<fcntl.h>//1.写一个shell的入口,用于提示要输入信息//2.scanf接受一...

2019-03-25 18:36:00 183

原创 Linux:文件系统

1.文件描述符我们学习open的时候,就知道open成功的返回值是一个文件描述符。同时它也是一个小整数。文件描述符是一个数字;一个数字是如何描述文件的呢? 一个进程要对所有的打开的文件进行管理,先将文件描述起来,然后组织进行管理,进程中对文件进行描述的结构体叫file(struct files),进程使用了一个结构体数组来组织这些描述,而文件描述符就是这个结构体数组的下标...

2019-03-25 16:39:19 174

原创 C++:多态

1.多态的概念多态的概念:通俗的说,就是多种形态,去完成某一个行为,不同的对象就会产生不同的行为。2.多态的定义和实现2.1定义的构成条件多态是不同继承关系的类对象,调用同一个函数,产生不同的行为。2.2构成多态还需要两个条件:1.基类中必须要有虚函数,派生类要对虚函数进行重写2.必须通过基类的指针或者引用来调用虚函数2.3重写的定义1.基类的函数必须是虚函数...

2019-03-20 09:04:27 125

原创 每日一题:跳石板

小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3.......这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。例如:N = 4,M = 24:4-&gt...

2019-03-17 22:26:09 373

原创 每日一题:求最大连续比特数

功能:求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1输入:一个byte型的数字输出:无返回:对应的二进制数字中1的最大连续数输入描述:输入一个byte数字输出描述:输出转成二进制之后连续1的个数示例1输入3输出2...

2019-03-15 17:42:16 649

原创 每日一题:两种排序方法

题目描述考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如: "car" &lt; "carriage" &lt; "cats" &lt; "doggies &lt; "koala" 2.根据字符串的长度排序。例如: "car" &lt; "cats" &amp

2019-03-12 00:13:47 203

原创 网络:高级IO之五种IO模型

众所周知,IO就分两步,第一步等待,第二步数据传输所以,一个高效的IO,就是等待的时间短,相反,如果等待时间过长,那么它就是一个低效率的IO。五种IO模型:(以钓鱼为例子)1.阻塞IO (钓鱼的时候就等鱼上钩,啥也不干)2.非阻塞IO (钓鱼的时候,不断地检测雨是否上钩)3.信号驱动IO (钓鱼...

2019-03-11 10:17:10 225

原创 每日一题:字符串中找出连续最长数字串

输入描述:输入一个字符串。输出描述:输出字符串中最长的数字字符串输入例子:abcd12345ed125ss123058789输出例子:123058789思路:先遍历,再保存int main(){ string s, s1,s2; cin &gt;&gt; s; string max; for (int i = 0; i&lt;s.size...

2019-03-07 10:53:22 129

原创 Linux:进程控制

进程的创建进程的控制的前提就是我们必须有一个进程,在上一篇中,我们已经能使用fork创建一个子进程,而它的特点是1.以父进程为模块复制创建出一个进程,父子进程代码共享。数据独有2.fork的返回值,父进程返回子进程的pid,子进程返回03.fork取决于cpu的调度而vfork()也是创建一个进程实现:#include&lt;stdio.h&gt;#include&...

2019-02-17 21:36:11 97

原创 C++:继承

1.概念继承机制是面向对象程序设计时,提高代码复用率最重要的手段,有了它,程序员在保证原有特点的情况下,对该类进行拓展,增加功能,形成新的类。继承呈现了面向对象程序设计时的层次结构。class base{public: int _pub;private: int _pri;protected: int _pro;};class derived:public base ...

2019-02-16 00:16:54 328

原创 Linux:进程的概念

1.进程的概念进程根据字面意思,无非就是正在执行或者正在运行的程序。但是在内核观点上理解,它就是担任分配系统资源的实体。2.描述进程在linux中,每一个进程都由task_struct 数据结构来定义,而它就是我们常说的PCB(process control block),它是对进程控制的唯一手段,也是最有效的手段,他对被装载到RAM里并包含这进程的信息。task_struct...

2018-12-03 18:41:14 149

原创 C++:模板总结

前提:我们要实现一个通用的交换函数swap,就是让它适用于任何一个类型。比如:int,char,double......,但是我们要写很多交换的函数,对swap函数进行重载。那我们如何解决这个问题?可不可以给编译器一个模子,让编译器来给我们实现不同类型的转化?函数模板1.概念:函数模板代表了一个函数家族,在使用时被参数化,根据实参类型产生特定的函数。2.函数模板格式templat...

2018-12-03 14:20:04 189

原创 string类的模拟实现

class String{public: typedef char* Iterator;public: String() { } String(const char* str) { if (str == nullptr) { assert(str); return; } _str = new char[strlen(str) + 1]; _s...

2018-11-26 16:47:19 139

原创 C/C++:内存管理

一.C/C++中程序内存区域划分在C/C++中,程序内存区域可以分成四个部分:1.栈:用来保存非静态的局部变量/函数参数/返回值等等,栈试想下增长的    2.堆:用于程序运行时的动态内存分配,堆是可以向上增长的3.数据段:存储全局数据和静态数据4.代码段:保存可执行的代码和只读的常量二.C语言动态内存的管理方式C语言我们使用的开辟内存空间的函数有三个:1.mall...

2018-11-10 21:45:43 175

原创 linux常用工具问答

一.自行查找资料, 调研除了vim, 还有哪些常用的牛逼的编辑器, 并能够横向对比编辑器之间的区别和优缺点.1.vimvim是一个类似于vi的著名的功能强大、高度可定制的文本编辑器,在vi的基础上改进和增加了很多特性。VIM是自由软件。vim普遍被推崇为类vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜...

2018-11-08 21:57:50 174

原创 C++:类与对象(最终)

前两篇关于类与对象的博客,都是类与对象中不可或缺的对象,这篇就是在前两篇的基础上,再对类与对象进行补充。一.简识深浅拷贝当我们进行拷贝造作函数,或者赋值运算符重载的时候,我们不给出这两个函数,编译器就会默认自动生成,默认对类进行位拷贝(按照基本类型进行值的拷贝)。那么编译器给的到底有没有问题呢?看代码:class Slist{public: Slist() { }...

2018-11-01 18:25:55 1444

原创 C++:类与对象二

类中的默认成员函数类中默认成员函数一共有六个:(1)构造函数(2)拷贝构造函数(3)析构函数(4)赋值操作符重载(5)取地址操作符重载(6)const修饰的取地址操作符修改。一.构造函数构造函数就是随着对象被创建而自动调用的公有成员函数,有且仅在对象被定义时,自动调用一次,主要用于对对对象的初始化,它的特征:1. 函数名与类名相同。2. 无返回值。3. 对象构造(对象实...

2018-10-31 16:34:35 185

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除