自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 review of c++

友元关系是单向的。指针。

2024-06-06 10:22:34 150

原创 Azure AD 和 Identity Server4 客户端身份验证和授权

clientId 是 Azure AD 应用程序的 ID,authority 是 https://login.microsoftonline.com/ 加上Azure AD 租户 ID。Azure AD 应用程序需要具有适当的设置,以接受来自 React 应用程序的请求。使用 React 和 Azure AD 进行身份验证可以使用 OpenID Connect 和 Microsoft 身份验证库 for JavaScript (MSAL.js)来完成。参数是注销后要重定向的 URL。参数表示加载用户信息。

2024-01-25 15:15:31 750

原创 js脚本扫描文件并添加test-id以执行自动化测试

标签中存在 className 属性,则将 className 的值作为 data-test-id 的属性值;否则将使用文件名或其外层文件夹名称作为 data-test-id 的属性值.该脚本将遍历指定文件夹中的所有 *.tsx 文件,并为每个文件的 return ( 语句中的第一个

2024-01-25 13:57:37 432

原创 git stash

git stash。

2024-01-25 13:46:57 390

原创 some record

异步node对象1.global: 和window一样,任何global对象上的属性都可以被全局访问到。2.process: 所有全局执行上下文中的内容都是在process对象中。浏览器中窗口的名字是window.name,在node中近程的名字是process.title回调是一个简单的函数,会作为值被传给另一个函数,并且仅在事件发生时才被执行。 之所以这样做,是因为 JavaScript 具有顶级的函数,这些函数可以被分配给变量并传给其他函数(称为高阶函数)同时发两个请求, 可以用:Pro

2021-06-17 17:07:22 154

原创 node 进入指定目录并执行shell命令

const exec = require('child_process').execconst cmd = 'npm run start'const cwd = 'script path'exec(cmd, { cwd }, function (error, stdout, stderr) { if (error) { console.log(stderr) return } console.log(`run ${cwd} succ

2021-04-23 15:59:11 3112 1

原创 解决端口占用的方法

比如3000端口被占用,1.查询占据3000端口的进程:netstat -nao | findstr 30002.比如16028占用了3000端口,终止进程:taskkill /pid 16048 -f

2021-04-23 15:42:16 138

原创 jest测试项目中遇到的报错解决方案

1.报错:window is not defined解决方法:引入jsdom,在jest.config.js中添加: testEnvironment: “jsdom”,2.直接将css(scss,sass)文件导入组件导致的测试程序执行失败解决方法:安装jest-css-modules: npm install jest-css-modules --save-dev在jest配置文件中添加:"jest": { "modulesNameMapper": { "\\.(css

2021-04-23 15:35:43 4567

原创 设计原则

一、单一职责原则(SRP)定义:单一职责原则(SRP)的职责被定义为“引起变化的原因”.SRP 原则体现为:一个对象(方法)只做一件事情.SRP 原则在很多设计模式中都有着广泛的运用,例如代理模式、迭代器模式、单例模式和装饰者模式。优缺点:SRP 原则的优点是降低了单个类或者对象的复杂度,按照职责把对象分解成更小的粒度,这有助于代码的复用,也有利于进行单元测试。当一个职责需要变更的时候,不会影响到其他的职责。但 SRP 原则也有一些缺点,最明显的是会增加编写代码的复杂度。当我们按照职责把对象分

2021-04-14 17:46:18 81

原创 javascript设计模式

内容来自《javascript设计模式与开发实践》一、单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。比如当我们单击登录按钮的时候,页面中会出现一个登录浮窗,而这个登录浮窗是唯一的,无论单击多少次登录按钮,这个浮窗都只会被创建一次,那么这个登录浮窗就适合用单例模式来创建。实现:用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象。const SingleTon = function(name) { this.name =

2021-04-14 17:06:57 170 1

原创 typescript声明空间

一、声明空间1.类型声明空间类型声明空间可以作为类型注解使用class Foo {}interface Bar {}type Bas = {};let foo: Foo;let bar: Bar;let bas: Bas;interface Bar不能把它作为变量使用interface Bar {}const bar = Bar; // Error: "cannot find name 'Bar'"2.变量声明空间class Foo {}const someVar = Fo

2021-04-12 16:40:46 143

原创 js深拷贝和浅拷贝

一、按值操作(深拷贝)以下javascript的基本类型, 复制后,修改一个变量的值时,不会影响其他变量的值。stringnumberbooleannullundefined例如:let age1 = 100; //number类型let age2 = age1; //值的赋值属于深拷贝console.log(age1, age2); //100 100age1 = 200;console.log(age1, age2); //200 100 值的复制:是给另外一个变量创

2021-03-23 14:28:06 101

原创 webpack项目自动编译运行配置

在package.json文件中配置:"scripts": { "start": "nodemon --watch build --exec node \"./build/bundle.js\"", "build": "webpack --config webpack.client.js --watch" }自动编译: 加上–watch关键字,webpack --config filename --watch自动运行: 安装nodemon 监听源代码,只要发生改变就执行源代码但

2021-03-22 17:40:18 372

原创 jest测试学习

1.异步测试只有done()回调函数执行结束,测试用例才执行结束,而不是执行到fetchData就结束执行2.如果fetchData直接返回promise,使用then方法(成功),catch方法(失败)来测试3.使用catch是必须加上expect.assertions(1) 保证expect至少要执行一次才能得出结果4.fetchData直接返回promise的另一种测试成功方法测试异常的方法或者,去掉return 加上async await...

2021-01-29 17:19:38 341

原创 json-server的基本使用

我们可以使用json-server来模拟数据的请求。1.安装json-servernpm install json-server -g2.创建mock.json文件存放所要模拟的数据json文件中必须要有id属性,而且是标准的json格式,即要用双引号而不是单引号, 例如:3.启动json-server mock.json4.添加数据4.删除数据5.修改数据6.查找所有数据7.查找某一条数据8.查询1)根据name属性http://localhost:3000/n

2020-11-15 15:28:33 276

原创 Javascript高级程序设计 学习笔记

一、数据类型5种基本数据类型:string, number,Boolean,undefined,null复杂数据类型:object1.undefined声明未赋值为undefined,未声明的变量只能进行一种操作:用typeof检测数据类型为undefined,但它确实不等于undefined2.nullnull是一个空对象指针,所以typeof(null)=object,undefined派生于null,所以(null==undefined)=true,但(null===undefined)

2020-11-07 20:27:26 550

原创 阮一峰es6学习笔记

一、扩展let aClone = { ...a };// 等同于let aClone = Object.assign({}, a);let ab = { ...a, ...b };// 等同于let ab = Object.assign({}, a, b);let newVersion = { ...previousVersion, name: 'New Name' // Override the name property};// newVersion对象自定义了name属性,

2020-11-02 22:14:03 206

原创 javascript 时间倒计时和正向计时

// 倒计时getCountDown = (value) => { const timer = setInterval(() => { if (value >= 0) { this.getFormatTime(value) value -= 1 } else { clearInterval(timer) this.setState({ timer: null

2020-11-02 22:01:10 894

原创 Redux学习

1.store用来保存数据,由createStore生成。state是store的快照。acticon 用来改变state, store.dispatch(action)是view发出action的唯一方法。reducer是计算新state的过程,它是一个函数,接受前state和action作为参数,返回新的state.reducer函数内不能改变state,使用:function reducer(state, action) { return Object.assign({}, state,

2020-11-02 21:48:48 87

原创 react子组件传值给父组件

子组件传值给父组件:Parent:<Chlid parent={this} onChildDate={this.getChildData}/> // 把自己传给子组件getChildData = (result, msg) => {}//msg为子组件传的值Child:<Button onClick={this.toParent} />toParent = ()=>{this.props.onChildData(msg)}...

2020-11-02 21:42:35 161

原创 时间戳转换和计算

一、时间与时间戳的转换获取当前时间戳: Date().now获取当前时间: Date()时间转时间戳:new Date(‘2019.11.18 13:30:00’).getTime()时间戳转时间:import moment from ‘moment’moment(datetime).format(‘MM/DD/YYYY hh:mm:ss A’)二、据当前时间戳显示不同时间a、一分钟以内的显示“刚刚”;b、大于等于一分钟且小于一小时显示x分钟前c、1小时以上的,显示x小时前d、

2020-11-02 21:36:23 5637

原创 React.createRef()的使用

最新的react废弃了this.refs,ref引用的写法有了改变。使用React.createRef()后,通过ref的current属性将能得到dom节点或组件的实例class MyComponent extends React.Component { constructor(props) { super(props); this.bodyBox = React.createRef();} getDom () { const bodyBoxDom = this.bodyBox

2020-06-20 21:04:02 5380

原创 下拉到底部滚动加载数据

滚动加载需要三个高度scrollHeight(文档内容实际高度,包括超出视窗的溢出部分)scrollTop(滚动条距离顶部的滚动距离)clientHeight(窗口可视范围高度)scrollTop + clientHeight > scrollHeight 即已滚动达到底部如图class MyComponent extends React.Component { constructor(props) { super(props); this.bodyBox = React.c

2020-06-20 20:59:49 451

原创 flex布局文字溢出显示省略号失效的解决方法

css单行文字溢出省略: overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100px;css多行文字溢出省略: word-break: break-word; text-overflow: ellipsis; display: -webkit-box; -webkit-...

2020-05-05 19:44:30 5649 1

原创 解决antd select组件、日历组件下拉框随页面滚动分离的问题

在组件中添加“getPopupContainer={triggerNode =>triggerNode.parentNode}”属性即可。<Select getPopupContainer={triggerNode => triggerNode.parentNode} // some code</Select>...

2020-05-05 18:37:22 1430

原创 利用ajax从服务端获取excel文件

ajax函数的返回类型只有xml、text、json、html等类型,请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流。所以直接用ajax直接调用接口下载得到的是一串乱码,如图:![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX...

2020-05-05 18:11:30 3785 2

软件设计与项目管理

软件设计模式与管理,介绍软件的标准化开发生命周期,并通过实际案例获得经验

2018-12-11

空空如也

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

TA关注的人

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