- React 入门第九天:与后端API的集成与数据管理
Caleb-niu
React‘sfamilyreact.jsjavascript前端
在React学习的第九天,我集中学习了如何与后端API进行集成。这一步是将静态的React应用转变为动态、可交互的关键。通过与后端通信,我们可以从服务器获取数据、发送用户输入以及处理复杂的业务逻辑。1.使用fetch进行数据请求React没有内置的HTTP库,因此我们通常使用浏览器提供的fetchAPI或第三方库如axios来发送请求。以下是一个使用fetch从API获取数据的示例:importR
- React学习12----请求接口数据
zhaihaohao1
React
react获取服务器APi接口的数据:react中没有提供专门的请求数据的模块。但是我们可以使用任何第三方请求数据模块实现请求数据我们使用axios插件,来请求接口数据使用如下:查看文档:axioshttps://www.npmjs.com/package/axios1、安装axios模块npminstallaxios--save/npminstallaxios--save2、在哪里使用就在哪里引
- React 入门第六天:理解组件生命周期与效果
Caleb-niu
React‘sfamilyreact.jsjavascript前端
在React学习的第六天,我深入探讨了组件的生命周期以及如何使用React的生命周期方法和副作用处理功能。这一天的学习让我对React组件的内部运作机制有了更清晰的理解,同时也帮助我更好地管理组件的状态和副作用。1.组件生命周期简介React组件的生命周期指的是从组件创建到销毁的全过程。理解组件的生命周期对高效管理组件的状态和副作用至关重要。虽然函数组件主要依赖于Hooks来处理生命周期和副作用,
- React学习day18
我在东软打代码
Reactreact
Provider批量传递store对象,求和案例react-redux优化容器组件和UI组件整合一个文件。无需自己给容器组件传递store,给包裹一个即可。使用react-redux后也不用自己再检测redux中状态的改变,容器组件可以自动完成这个工作。.mapDispatchToProps也可以简单的写一个对象一个组件要和redux“打交道”要经过几步(1)定义好UI组件—不暴露(2)引入con
- React学习打卡Day05
信徒不伤
react
1.属性props使用let{‘属性名’}=this.props接收属性可接收多个2.属性验证Navbar.protoTypes={验证代码}可以写在对象内部,需要加static关键字importReact,{PureComponent}from'react'importproptypesfrom'prop-types'exportdefaultclassNavbarextendsPureComp
- React 入门第七天:探索状态管理与Context API
Caleb-niu
React‘sfamilyhtml前端
在React学习的第七天,我深入了解了React的状态管理机制,特别是如何通过ContextAPI来实现跨组件的状态共享。React的状态管理是组件交互的核心,而ContextAPI则为全局状态的共享提供了一个简洁而强大的解决方案。1.React中的状态管理React中的状态管理分为组件内部状态管理和跨组件状态管理。组件内部的状态管理相对简单,可以通过useState和useReducer来处理。
- 03.React学习日记.JSX绑定事件-传递参数
_生生不息_
1.原生js事件获取image.png2.组件中方法事件获取发生该事件后,React内部回调函数,会自动传入一个event对象。注意:这两者不是同一种类型的对象,前者为js原生事件对象,后者为React内部合成的事件对象,功能属性基本一样。推荐:箭头函数是最方便的方法:image.pngiage.png注意:事件发生时,React内部调用函数,执行函数onClick.call(undefined,
- 17.React学习笔记.受控非受控组件
_生生不息_
一.refs的使用##React开发模式中,通常情况不需要,也不建议直接操作DOM元素,但是某些特殊的情况,确实需要获取到DOM进行某些操作。管理焦点,文本选择/媒体播放;触发强制动画;集成第三方DOM库。如何创建refs来获取对应的DOM?三种方式。1.1创建方式importReact,{PureComponent,createRef}from'react'exportdefaultclassA
- 53.React学习笔记.自定义hook练习-scroll
_生生不息_
如果我们想在多个组件中获取当前滚轮的位置,并对其进行操作,这时候就需要将逻辑给抽离出来。importReactfrom'react'importuseScrollPositionfrom'../hooks/scroll-position-hook';exportdefaultfunctionCustomScrollPositionHook(){constposition=useScrollPosi
- React学习笔记
张豆豆94
【HBuilder学习篇】前端react
文章目录1.react脚手架初始化项目2.HooksuseStateuseEffectuseContextuseReduceruseMemouseCallbackuseRef3.APIforwardRef1.react脚手架初始化项目npxcreate-react-appmy-app2.Hooks以use开头的函数,只能在组件或自定义Hook的最顶层调用,不能在条件语句、循环语句或其他嵌套函数内调
- 19 React学习笔记.AntDesign
_生生不息_
AntDesign组件库一.原生React添加className方法{/*原生React中添加class方法*/}我是标题1我是标题2我是标题2)二.第三方库classnames原生React太繁琐,借助第三方库classnames。写法类似Vue中添加类名。{/*classnames库添加class*/}我是标题4我是标题5我是标题6我是标题7我是标题8我是标题9我是标题9三.AntDesign
- React前端框架学习 基础知识@stage3---week5--day2
英俊潇洒美少年
ReactReact框架基础知识
ReactReact学习版本:16.xReact老版本项目:15.xreact官网说17.x会使用的一些技术React应用级脚手架CRAdvaumicreate-react-app【CRA】React官网提供的脚手架脚手架:作用:快速构建一个项目安装全局安装create-react-app$npminstall-gcreate-react-app如果不想全局安装,可以直接使用npx$npxcrea
- React详解(基础知识)——react学习part01
哈喽……
react.js学习笔记
React详解(基础知识)——react学习part01react简介1.官网2.介绍描述3.React的特点4.React高效的原因React的使用1.基本使用1.1创建虚拟DOM的两种方式1.2渲染虚拟DOM1.3虚拟DOM与真实DOM2.ReactJSX2.1JSX3.模块与组件、模块化与组件化的理解3.1模块3.2组件3.3模块化3.4组件化React面向组件编程4.1函数式组件4.2类式
- React学习记录
一抹春绿误行程
大概一年半之前用过React,后来因为工作的原因再也没有接触到React。前端日新月异,室友(也是同行)的提醒,让我有了更强的危机感,模块化开发已是前端基本技能。抛弃各种框架本身的运用来说,更为重要的是它们提供的编程思维。提高自己专业水平,迫在眉睫。我想在上记录自己的一些学习笔记,自己实在太菜。今天在React中看到一个demo。有一段代码如下:constnewItem={text:this.st
- React从零基础入门到实战,完成企业级项目简书网站开发
Xxxxxl17
Reactreact.jsjavascript前端
终于追完整部React剧~全部代码可见GitLab项目地址:https://gitee.com/xxxxxl17/jian-shu-react学习笔记:React从零基础入门到实战,完成企业级项目简书网站开发(慕课网学习笔记)
- react学习笔记3
此间诗意杀人地
react笔记react
一、key与diffing算法react中的key:可以在DOM中的某些元素被增加或删除的时候帮助React识别哪些元素发生了变化。因此你应当给数组中的每一个元素赋予一个确定的标识便于react区分。一个元素的key最好是这个元素在列表中拥有的一个独一无二的字符串。通常,我们使用来自数据的id作为元素的key,当元素没有确定的id时,你可以使用他的序列号索引index作为key。虚拟DOM中key
- React 基础学习01
小江的博客
IT资源react.js学习前端
以下是React学习基础,面试中也是常问的点击我获取更多资源1.React类组件中的setState是异步还是同步?同步条件有类组件:函数加上setTimeout,state修改后,state和dom都是新值异步条件有类组件:state修改后,state和dom都是旧值,原因是setState会批量更新函数组件:state修改后,state是旧值,但是dom是旧值,但是如果是在setTimeout
- 22.React学习笔记.JavaScript纯函数
_生生不息_
纯函数:函数式编程中的一个概念。wiki定义:符合以下条件:输入相同,输出相同;输出和输入值以外的信息&状态无关,也和由I/O设备产生的外部输出无关。该函数不能有语义上可观察的函数副作用:确定的输入,一定有确定的输出;函数执行过程中,不能产生副作用。重要性:放心编写,放心使用。-所有React组件必须像纯函数一样保护它们的props不被更改。-redux中,reducer也必须是纯函数。
- React(3): React 实现卖座App
一个抱抱一首歌
react.js前端前端框架
React实现卖座App娱乐项目,请勿当真!!!简介之前在学习React的时候,在bilibili看到React学习视频,于是马上着手React版本的卖座App开发技术栈//前端ReactTypeScriptAntd-MobileDayjs3D-selectiontailwindcss//后端nestjs(websocket+jwt等)接口对接部分直接调用卖座App的接口支付接口自己写的nestj
- 15.React学习笔记.setState内容补充
_生生不息_
setState数据的合并setState改变state中的部分属性,并不会覆盖原有的属性,回溯源码ReactUpdateQueue中的processUpdateQueue,getStateFromUpdate方法中。调用的实际是如下方法:Object.assign({},this.state,{message:"你好啊,wec"})image.png实际上内部将更改过的属性和原属性做了个合并+拷
- vue 和 react语法对比异同点
weixin_30896763
vue和react学习异同点本文不做两个框架比较,只对比了两个框架的语法对比,不代表任何观点,盗版必究,本人唯一qq:421217189欢迎大家一起来学习探讨,壮我大前端(本文markdown直接生成,没有排版,也是为了防止那些不要脸的直接复制我文章的人,在此特声明,所有直接窃取文化知识的人,本人必将追究法律责任,本人qq:421217189,新增一个qq专为大家提供技术:15274527。)先说
- react学习之---jsx转成虚拟dom的过程
小白分享
react.js学习前端
jsx----经过Bebal编译返回可供React.createElement()可调用的对象—React.createElement调用后生成虚拟dom—diff算法—生成新的真实dom经过babel编译:import{greet}from‘./utils’;constApp={greet(‘scott’)};ReactDOM.render(App,document.getElementById
- React学习笔记(一)
滨滨_57b5
知识点及简介知识点知识点简介ReactJS:使用React的语法来编写一些网页的交互效果ReactNative:使用React的语法来编写原生APPReactVRReact.js-version16.3.2版本ReactFiberReact.js相比Vue.js灵活性更大,对于处理非常复杂业务时,技术方案选择性会更多;Vue.js则提供了更丰富的API,实现功能更简单,但由于API多,因此灵活性就
- React高阶组件--render props、高阶组件(React学习笔记_06)
小王子__
React-renderprops和高阶组件1,renderprops模式使用步骤1,创建一个组件,在组件中提供复用的状态逻辑代码2,将要复用的状态作为props.render(state)方法的参数,暴露到组件外部3,使用props.render()的返回值作为要渲染的内容class组件名extendsReact.Component{state={}render(){returnthis.pro
- react学习之路二:路由守卫-判断登录状态
qinleo007
react.js学习javascript
以下内容全部是vue转react学习过程中的笔记,难免有错误,仅供参考一、vue的路由守卫vue-router提供了内置的APIrouter.beforeEach()在这个方法里面,我们可以判断登录状态来拦截路由的跳转二、react-router-domV5版本没有内置API(其它版本未知)路由守卫的最终目的是对路由对应组件的渲染进行拦截,所以只需要在render路由组件的地方,先判断登录条件,然
- react学习-生命周期函数
HeyYoo_
在开始react之前首先要了解的就是关于react执行的过程,那么,就让我们来了解了解react相关的生命周期函数。在这,将react的生命周期分为三个部分。1.组件初始化1.1getDefaultProps()设置默认的props值,getDefaultProps()方法被调用一次并缓存1.2getInitialState()可直接在constructor中定义this.state,只调用一次,
- 【React源码 - Diff算法】
weixin_44273311
react.js算法javascript
介绍在React学习中,Diff算法(协调算法),想必我们并不陌生,简单来说就是一个对比新老节点寻找差异,然后找出最小的一个变化集,最后对这个最小变化集进行最小的DOM操作,本文将从源码来分析在React(17.0.2)中是如何来通过这个算法来进行对比并让Renderer知道如果操作DOM的。在reconcileChildFibers中,主要是通过newChild的类型以及type来判断执行那个函
- 由Vue转React的自学文档
雨燕容若
react.jsvue.jsjavascript
react学习文档由vue3转学react,之前从未接触过react,自学了一遍感觉还好,容易上手。期间的一些笔记,后续有更深的见解持续更新。组件(类组件,函数组件)组件名称首字母要大写,必须有返回值,没有写null设置默认值:function组件名({默认值:1})/类组件:staticdefaultProps={默认值:1}实例化:类组件有实例化,函数组件没有组件通信父传子父组件通过state
- 16.React学习笔记.React更新机制
_生生不息_
一.发生更新的时机以及顺序##image.pngprops/state改变render函数重新执行产生新的VDOM树新旧DOM树进行diff计算出差异进行更新更新到真实的DOM二.React更新流程##React将最好的O(n^3)的tree比较算法优化为O(n)。同层节点之间相互比较,不跨节点。不同类型的节点,产生不同的树结构:如果该节点不同,会将旧tree中该节点的子树全部删掉。直接生成新的子
- React学习三 —— react组件的三大属性(state、props、refs)
沧州刺史
笔记Reactreact.js学习javascript前端前端框架
组件三大核心属性React组件有很多属性,在其中有三个属性最为核心和重要:statepropsrefsstate让你可以通过数据驱动视图,让视图自动根据数据的改变而改变。props可以提高组件的灵活性,通过外界传值让组件根据用户特性而呈现不同的视图。refs能够减少用户对DOM的直接操作,而可以通过获取代理节点而提高开发效率和页面性能。一、State如果需要在组件中维护一些数据,那么可以使用sta
- 怎么样才能成为专业的程序员?
cocos2d-x小菜
编程PHP
如何要想成为一名专业的程序员?仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。
关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为
- java web开发 高并发处理
BreakingBad
javaWeb并发开发处理高
java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(
- mysql批量更新
ekian
mysql
mysql更新优化:
一版的更新的话都是采用update set的方式,但是如果需要批量更新的话,只能for循环的执行更新。或者采用executeBatch的方式,执行更新。无论哪种方式,性能都不见得多好。
三千多条的更新,需要3分多钟。
查询了批量更新的优化,有说replace into的方式,即:
replace into tableName(id,status) values
- 微软BI(3)
18289753290
微软BI SSIS
1)
Q:该列违反了完整性约束错误;已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“不能将值 NULL 插入列 'FZCHID',表 'JRB_EnterpriseCredit.dbo.QYFZCH';列不允许有 Null 值。INSERT 失败。”。
A:一般这类问题的存在是
- Java中的List
g21121
java
List是一个有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复
- 读书笔记
永夜-极光
读书笔记
1. K是一家加工厂,需要采购原材料,有A,B,C,D 4家供应商,其中A给出的价格最低,性价比最高,那么假如你是这家企业的采购经理,你会如何决策?
传统决策: A:100%订单 B,C,D:0%
&nbs
- centos 安装 Codeblocks
随便小屋
codeblocks
1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可yum install gccyum install gcc-c++
2.安装gtk2-devel,因为默认已经安装了正式产品需要的支持库,但是没有安装开发所需要的文档.yum install gtk2*
3. 安装wxGTK
yum search w
- 23种设计模式的形象比喻
aijuans
设计模式
1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:
- 开发管理 CheckLists
aoyouzi
开发管理 CheckLists
开发管理 CheckLists(23) -使项目组度过完整的生命周期
开发管理 CheckLists(22) -组织项目资源
开发管理 CheckLists(21) -控制项目的范围开发管理 CheckLists(20) -项目利益相关者责任开发管理 CheckLists(19) -选择合适的团队成员开发管理 CheckLists(18) -敏捷开发 Scrum Master 工作开发管理 C
- js实现切换
百合不是茶
JavaScript栏目切换
js主要功能之一就是实现页面的特效,窗体的切换可以减少页面的大小,被门户网站大量应用思路:
1,先将要显示的设置为display:bisible 否则设为none
2,设置栏目的id ,js获取栏目的id,如果id为Null就设置为显示
3,判断js获取的id名字;再设置是否显示
代码实现:
html代码:
<di
- 周鸿祎在360新员工入职培训上的讲话
bijian1013
感悟项目管理人生职场
这篇文章也是最近偶尔看到的,考虑到原博客发布者可能将其删除等原因,也更方便个人查找,特将原文拷贝再发布的。“学东西是为自己的,不要整天以混的姿态来跟公司博弈,就算是混,我觉得你要是能在混的时间里,收获一些别的有利于人生发展的东西,也是不错的,看你怎么把握了”,看了之后,对这句话记忆犹新。 &
- 前端Web开发的页面效果
Bill_chen
htmlWebMicrosoft
1.IE6下png图片的透明显示:
<img src="图片地址" border="0" style="Filter.Alpha(Opacity)=数值(100),style=数值(3)"/>
或在<head></head>间加一段JS代码让透明png图片正常显示。
2.<li>标
- 【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)
bit1129
垃圾回收
CMS概述
并发标记清理垃圾回收(Concurrent Mark and Sweep GC)算法的主要目标是在GC过程中,减少暂停用户线程的次数以及在不得不暂停用户线程的请夸功能,尽可能短的暂停用户线程的时间。这对于交互式应用,比如web应用来说,是非常重要的。
CMS垃圾回收针对新生代和老年代采用不同的策略。相比同吞吐量垃圾回收,它要复杂的多。吞吐量垃圾回收在执
- Struts2技术总结
白糖_
struts2
必备jar文件
早在struts2.0.*的时候,struts2的必备jar包需要如下几个:
commons-logging-*.jar Apache旗下commons项目的log日志包
freemarker-*.jar  
- Jquery easyui layout应用注意事项
bozch
jquery浏览器easyuilayout
在jquery easyui中提供了easyui-layout布局,他的布局比较局限,类似java中GUI的border布局。下面对其使用注意事项作简要介绍:
如果在现有的工程中前台界面均应用了jquery easyui,那么在布局的时候最好应用jquery eaysui的layout布局,否则在表单页面(编辑、查看、添加等等)在不同的浏览器会出
- java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
bylijinnan
java
public class CopySpecialLinkedList {
/**
* 题目:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
拷贝pNext指针非常容易,所以题目的难点是如何拷贝pRand指针。
假设原来链表为A1 -> A2 ->... -> An,新拷贝
- color
Chen.H
JavaScripthtmlcss
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD>&nbs
- [信息与战争]移动通讯与网络
comsci
网络
两个坚持:手机的电池必须可以取下来
光纤不能够入户,只能够到楼宇
建议大家找这本书看看:<&
- oracle flashback query(闪回查询)
daizj
oracleflashback queryflashback table
在Oracle 10g中,Flash back家族分为以下成员:
Flashback Database
Flashback Drop
Flashback Table
Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transaction Query)
下面介绍一下Flashback Drop 和Flas
- zeus持久层DAO单元测试
deng520159
单元测试
zeus代码测试正紧张进行中,但由于工作比较忙,但速度比较慢.现在已经完成读写分离单元测试了,现在把几种情况单元测试的例子发出来,希望有人能进出意见,让它走下去.
本文是zeus的dao单元测试:
1.单元测试直接上代码
package com.dengliang.zeus.webdemo.test;
import org.junit.Test;
import o
- C语言学习三printf函数和scanf函数学习
dcj3sjt126com
cprintfscanflanguage
printf函数
/*
2013年3月10日20:42:32
地点:北京潘家园
功能:
目的:
测试%x %X %#x %#X的用法
*/
# include <stdio.h>
int main(void)
{
printf("哈哈!\n"); // \n表示换行
int i = 10;
printf
- 那你为什么小时候不好好读书?
dcj3sjt126com
life
dady, 我今天捡到了十块钱, 不过我还给那个人了
good girl! 那个人有没有和你讲thank you啊
没有啦....他拉我的耳朵我才把钱还给他的, 他哪里会和我讲thank you
爸爸, 如果地上有一张5块一张10块你拿哪一张呢....
当然是拿十块的咯...
爸爸你很笨的, 你不会两张都拿
爸爸为什么上个月那个人来跟你讨钱, 你告诉他没
- iptables开放端口
Fanyucai
linuxiptables端口
1,找到配置文件
vi /etc/sysconfig/iptables
2,添加端口开放,增加一行,开放18081端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 18081 -j ACCEPT
3,保存
ESC
:wq!
4,重启服务
service iptables
- Ehcache(05)——缓存的查询
234390216
排序ehcache统计query
缓存的查询
目录
1. 使Cache可查询
1.1 基于Xml配置
1.2 基于代码的配置
2 指定可搜索的属性
2.1 可查询属性类型
2.2 &
- 通过hashset找到数组中重复的元素
jackyrong
hashset
如何在hashset中快速找到重复的元素呢?方法很多,下面是其中一个办法:
int[] array = {1,1,2,3,4,5,6,7,8,8};
Set<Integer> set = new HashSet<Integer>();
for(int i = 0
- 使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL
lanrikey
history
后退时关闭当前页面
<script type="text/javascript">
jQuery(document).ready(function ($) {
if (window.history && window.history.pushState) {
- 应用程序的通信成本
netkiller.github.com
虚拟机应用服务器陈景峰netkillerneo
应用程序的通信成本
什么是通信
一个程序中两个以上功能相互传递信号或数据叫做通信。
什么是成本
这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间是指传递过程耗费容量大小。
都有哪些通信方式
全局变量
线程间通信
共享内存
共享文件
管道
Socket
硬件(串口,USB) 等等
全局变量
全局变量是成本最低通信方法,通过设置
- 一维数组与二维数组的声明与定义
恋洁e生
二维数组一维数组定义声明初始化
/** * */ package test20111005; /** * @author FlyingFire * @date:2011-11-18 上午04:33:36 * @author :代码整理 * @introduce :一维数组与二维数组的初始化 *summary: */ public c
- Spring Mybatis独立事务配置
toknowme
mybatis
在项目中有很多地方会使用到独立事务,下面以获取主键为例
(1)修改配置文件spring-mybatis.xml <!-- 开启事务支持 --> <tx:annotation-driven transaction-manager="transactionManager" /> &n
- 更新Anadroid SDK Tooks之后,Eclipse提示No update were found
xp9802
eclipse
使用Android SDK Manager 更新了Anadroid SDK Tooks 之后,
打开eclipse提示 This Android SDK requires Android Developer Toolkit version 23.0.0 or above, 点击Check for Updates
检测一会后提示 No update were found