自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 react-native-webrtc源码下载

使用android studio打开android目录。

2025-05-01 16:15:40 179

原创 mediasoup调试环境搭建

app端使用的客户端,通过webrtc协议与webrtc服务器交互。

2025-05-01 16:14:40 779

原创 20.jest测试

【代码】20.jest测试。

2025-05-01 11:10:33 146

原创 19.EventEmitter使用

添加监听器到某个事件K。

2025-05-01 11:09:48 109

原创 18.typescript资源同步控制

【代码】18.typescript资源同步控制。

2025-05-01 11:08:59 119

原创 17.queueMicrotask使用

【代码】17.queueMicrotask使用。

2025-05-01 11:08:05 96

原创 16.typescript方法定义

使用方法${${

2025-05-01 11:05:53 109

原创 15.typescript自定义类型(type&interface&class)

id: number;email?: string;// 可选属性//只读属性//方法//继承接口abstract class AbstractUser {//抽象类使用abstract修饰//访问修饰符// 公开(默认)// 私有// 受保护constructor(name: string,age:number,sex:number) { //构造方法//抽象方法,继承的类中必须实现。

2025-05-01 11:05:14 349

原创 14.typescript基本类型

都用来修饰函数。

2025-05-01 11:04:21 144

原创 13.react-native使用安卓原生代码

使用android studio打开react native项目的android目录在kotlin+java目录下添加代码。

2025-05-01 02:12:35 252

原创 12.redux-store使用

修改component/MapComponent.jsx。修改component/MapComponent.jsx。修改component/MapComponent.jsx。propTypes.js: 创建自定义类型限制。点击按钮后Name,Age,Address变更。客户端一般用于处理异步函数,比如调用接口。添加依赖prop-types。修改Context.js。修改Client.js。

2025-05-01 02:08:58 408

原创 11.useRef使用

父组件获取子组件的引用,并使用子组件的方法和属性。

2025-04-16 17:59:03 157

原创 10.useEffect使用

可以重用的用来同步外部系统的代码,导出名一般使用use开头}, 2000);}, []);} , [ ]);});})();`);} , [ ]);});})();`);});})();

2025-04-16 17:58:26 166

原创 9.useReducer+useContext搭配使用

useReducer和useState一样,需要通过props在子组件中传递,很麻烦,所以可以把useReducer返回的状态和dispatch通过useContext在子组件中传递。

2025-04-16 17:57:44 143

原创 8.useReducer使用

reducer的作用是根据初始状态和操作的类型以及参数来返回新的状态,这个状态类似于useState的状态,最好提供一个单独的文件MapReducer.ts。

2025-04-16 17:56:44 300

原创 7.useContext使用

上下文中的值可以在所有子组件中使用,而不用通过props来传递。

2025-04-16 17:55:54 109

原创 6.useState使用

状态是依赖组件存在的,组件加载才会引起状态初始化,组件更新则不会引起状态初始化。

2025-04-16 17:55:14 285

原创 5.Promise使用

【代码】5.Promise使用。

2025-04-16 17:54:20 350

原创 4.react-native开发环境配置

查看android/build.gradle文件查看要求的android环境。使用android studio安装andorid sdk对应版本的模拟器。使用android studio安装对应版本的build tools。使用android studio安装对应版本的sdk。使用android studio安装对应版本的ndk。在android studio启动模拟器。

2025-04-16 17:53:18 249

原创 3.react-web开发环境配置

执行npm run dev启动服务器,在浏览器打开http://localhost:5173,F12打开开发者工具可以在tsx文件中下断点。执行npm run dev启动服务器,在vscode按F5开启调试,可以直接在源代码上下断点。添加.vscode/launch.json文件。在tsconfig.app.json中修改。在eslint.config.js中添加。vite.config.ts添加配置。vite.config.ts添加配置。修改vite.config.ts文件。使用vitest做单元测试。

2025-04-16 17:51:26 267

原创 2.typescript第三方库开发环境配置

这样编译后会在dist目录下新增index.d.ts文件和index.d.ts.map文件。通过上面的步骤,一个第三方库已经完成,在其他项目中就可以使用这个第三方库了。在test目录下创建一个名为example.test.ts文件。这个时候在dist中会多一个index.js.map文件。这时在dist目录下会生成index.js文件。在tsconfig.json添加配置。在package.json添加脚本。在package.json添加脚本。在package.json添加脚本。在项目根目录下创建一个。

2025-04-16 17:48:42 659

原创 1.node安装&使用

【代码】1.node安装&使用。

2025-04-16 17:45:12 177

原创 12.get_optional_long函数

get_optional_long用来获取启动选项argc: 参数个数argv: 参数列表shortopts:选项短名称,比如a:b::c(x 对应option结构中的no_argument,使用-x传参x: 对应option结构中的required_argument,使用-x=value传参x:: 对应option结构中的optional_argument, 可以使用-x传参,也可以使用-x=value传参)longopts:选项长名称。

2025-03-27 00:19:41 144

原创 11.时间类型

localtime返回的tm指针是static类型的,所以返回的tm是同一个,就会有线程安全问题,所有线程使用的tm都是同一个。两个时间返回的time_t是一样的,因为tm结构中有一个tm_zone结构,标注了tm时间的时区,所以都可以调整到UTC时间。localtime_r第二个参数传入一个一个tm指针,这样不同线程的tm就不再是同一个了,就不会有线程安全问题了。先将string转化成tm,再使用mktime将tm转化为time_t。timeval的tv_sec就是time_t时间。

2025-03-27 00:18:15 930

原创 10.c++线程&线程安全

创建线程线程休眠&让出cpu时间片线程joinable线程析构。

2025-03-27 00:16:07 826

原创 9.std::function使用

中括号中的参数会绑定到std::function对象内部,可以使用传引用和传值的方式传入。实参->形参:拷贝构造,形参->function对象内部:移动构造。std::function内部传入的值不会调用拷贝构造或是移动构造。std::function内部传入的值也会拷贝构造一次。不会调用对象的移动构造和拷贝构造函数。

2025-03-27 00:13:54 224

原创 8.c++智能指针

普通的指针很容易引起指针未释放,指针二次释放以及使用已释放指针的问题,使用智能指针不用去主动释放了,智能指针析构的时候指针就会释放。

2025-03-27 00:13:01 271

原创 7.c++继承&多态

无参构造函数移动构造函数拷贝构造函数可以使用=delete 来去除默认默认构造函数可以使用=default 来创建某个默认构造函数。

2025-03-25 17:46:14 339

原创 6.可变参数使用

2025-03-25 17:44:39 164

原创 5.类型转化

标准的转化,在很多时候,不经意间就发生了,比如int类型和double类型相加时,int类型就会被隐式的转化为double类型。

2025-03-25 17:42:25 188

原创 4.函数结构设计

防止引用的变量被修改,一般修饰左值引用或是指针参数。

2025-03-25 17:41:28 374

原创 3.宏&内联函数

宏变量使用1.变量作为字符串存在“xxx” ##x ”“yyy” 将组成一个字符串”xxx(x的值)yyy”2. 如果变量前面有非特殊字符,为了防止变量不解析,需要加##来标识,一般用来作为名称的一部分使用3. 不加如果变量前面没有非特殊字符,变量一定可以解析,可以省略##,当然也可以不省略也没有问题

2025-03-25 17:39:36 295

原创 2.c++左值和右值

std::forward可以把左值引用或右值引用转换为目标类型的引用(右值引用无法转换为左值引用)std::move可以把左值引用或右值引用全部转换成右值引用。已知T的类型,求T和T&和T&&的类型。已知T和T&和T&&的类型,求T的类型。以模板函数的参数来说明。

2025-03-25 17:38:26 902

原创 1.c++模板&类型

类型模板非类型模板。

2025-03-25 17:35:48 481

原创 10.vscode配置cmake

打开vscode应用商店安装。

2025-03-22 13:37:24 488

原创 9.cmake测试

创建一个测试目录test,并在测试目录下创建一个CMakeLists.txt文件,文件内容如下。

2025-03-22 13:36:50 153

原创 8.cmake安装

首先配置安装目录下面介绍3种安装方案。

2025-03-22 13:36:08 768

原创 7.cmake编译

ide中运行或调试使用的是输出目录中的可执行文件和库文件,代码中可能会读取一些配置文件,所以需要把一些配置文件复制到输出目录中,这里介绍两种文件复制的方法,这两个方法是编译阶段的方法,不能用于安装阶段。

2025-03-22 13:32:56 98

原创 6.cmake创建目标

全局定义#局部配置"-D<option>" 或是 "<option>",<option>是BOOL类型的变量这些定义可以在代码中使用:#else//do other#endif。

2025-03-22 13:32:24 247

原创 5.cmake导入第三方库

使用第三方库有两种方式,一种是使用cmake文件导入的方式,另一种是使用pc文件导入的方式。

2025-03-22 13:31:54 487

空空如也

空空如也

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

TA关注的人

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