首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git忽略本地文件修改,保留其远程仓库状态.md

Git忽略本地文件修改,保留其远程仓库状态 项目中一些配置文件,需要在本地根据实际情况配置和修改,但同时这些配置仅在本地使用,并不想提交到远程仓库,这个时候仅使用.gitignore就办不到了...如引言中使用场景,项目中有一些配置文件远程仓库存在,但是本地修改并不具有普适性,因此是不需要提交到远程仓库,天真的我一开始将项目拉下后,直接在.gitingnore中添加了相关文件,但是修改后发现...但是知识体系中,还没有一个很好解决方式,遂google探索之,终于找到了非常符合场景需求一个git操作: 忽略跟踪 git update-index --assume-unchanged 查看忽略跟踪文件 git ls-files -v | grep '^h ' 恢复忽略文件,重新版本控制 git update-index --no-assume-unchanged <file...但是查看git tree并没有任何跟踪文件是没有保存和提交状态,也就是说之前设置忽略文件,犹如掩耳盗铃般,只是不被提交,但是merge、checkout时候还是会被提示覆盖风险而导致git操作失败

1.7K30
您找到你想要的搜索结果了吗?
是的
没有找到

react 常见setState原理解析

如果不通过setState而直接修改this.state,那么这个state不会放入状态队列中,下次调用setState时对状态队列进行合并时,会忽略之前直接修改state,这样我们就无法合并了,而且实际也没有把你想要...setState之后发生事情 官方描述中,setState操作并不保证是同步,也可以认为是异步。...短时间内频繁setState。React会将state改变压入栈中,合适时机,批量更新state和视图,达到提高性能效果。...多个顺序执行setState不是同步地一个一个执行滴,会一个一个加入队列,然后最后一起执行,即批处理 如何知道state已经更新 传入回调函数 setState({ index: 1 }},...) setState无法完全掌控应用中所有组件状态

1.3K30

深入理解React生命周期

() 是第一个真正生命周期方法 该方法仅在初始化渲染之前调用一次 因为是render()之前调用,所以无法访问DOM等原生UI 因为子元素等尚未创建,也无法访问refs 可以对this.props...()中后期加载 出生阶段最后一个方法 该方法只组件实例及所有其子元素加载到原生UI后调用一次 该方法中可访问原生UI,或通过refs访问子元素了,所以有可能会触发一次新渲染过程;可以通过...),内部写this.props.xxx = ...会引发报错 当父元素或根元素传递了新属性值后,才会触发更新 4.1.2 setState() 对大部分开发者而言,首要和现实挑战就是组件中管理状态...改变部分状态时,并非替换整个state,React使用一个队列系统,更新其对应一块 setState()应视为异步操作;一个常见错误就是一个方法里setState后尝试立即用this.state.xxx...访问那个值,这容易引起bug React构造了一个更改队列,用来管理方法链中对状态多次更改;一旦状态更改添加到队列中,React就会确保组件添加到脏队列(dirty queue),以跟踪组件实例改变

1.3K10

react中setState是同步还是异步

而如果不通过setState,直接修改this.state 值,则不会放入状态队列,当下一次调用 setState状态队列进行合并时,之前对 this.state 修改将会被忽略,造成无法预知错误...大部分情况下我们写setState会直接将需要修改状态当做参数传入,其实setStae参数是这样setState(nextState,callback); setState 官方文档中介绍...这是事件处理函数和服务器请求回调函数中触发 UI 更新主要方法。不保证 setState 调用会同步执行,考虑到性能问题,可能会对多次调用作批处理。...原生绑定事件和setTimeout异步函数没有进入到React事务当中,或者当他们执行时,刚刚事务已近结束了,后置钩子触发了,所以此时setState会直接进入非批量更新模式,表现在我们看来成为了同步...综上来说我们可以简单理解为,在当前生命周期中,setState为异步批量更新,异步函数中,执行是同步更新方式。

1.2K20

2022react高频面试题有哪些

(构造函数中)调用 super(props) 目的是什么 super() 调用之前,子类是不能使用 this ES2015 中,子类必须在 constructor 中调用 super()...而 React 工作方式则不同。包含表单组件将跟踪其状态输入值,并在每次回调函数(例如onChange)触发时重新渲染组件,因为状态更新。...调用setState 之后发生了什么状态合并,触发调和: setState函数之后,会将传入参数对象与当前状态合并,然后出发调用过程根据新状态构建虚拟dom树 经过调和过程,react会高效根据新状态构建虚拟...setState()方法调用setState 是 React 中最常用命令,通常情况下,执行 setState触发 render。...;componentWillReceiveProps:初始化render时候不会执行,它会在组件接受到新状态(Props)时触发,一般用于父组件状态更新时子组件重新渲染shouldComponentUpdate

4.5K40

前端经典react面试题(持续更新中)_2023-03-15

,如果key不一样,则react先销毁该组件,然后重新创建该组件调用 setState 之后发生了什么代码中调用 setState 函数之后,React 会将传入参数与之前状态进行合并,然后触发所谓调和过程...key 是 React 用来追踪哪些列表元素修改、添加或者移除辅助标志。开发过程中,我们需要保证某个元素 key 在其同级元素中具有唯一性。...,只是合成事件和钩子函数调用顺序更新之前,导致合成事件和钩子函数中没法立马拿到更新后值,形成了所谓“异步”,当然可以通过第二个参数setState(partialState, callback...你可以 componentDidMount 里面直接调用 setState,它将触发额外渲染,但此渲染会发生在浏览器更新屏幕之前,如此保证了即使 render 了两次,用户也不会看到中间状态。...卸载阶段componentWillUnmount这个生命周期函数会在组件卸载销毁之前调用,我们可以在这里执行一些清除操作。不要在这里调用 setState,因为组件不会重新渲染。

1.3K20

前端面试指南之React篇(二)

react中这两个生命周期会触发死循环componentWillUpdate生命周期shouldComponentUpdate返回true后触发。...componentWillReceiveProps:初始化render时候不会执行,它会在组件接受到新状态(Props)时触发,一般用于父组件状态更新时子组件重新渲染shouldComponentUpdate...如下所示, username没有存储DOM元素内,而是存储组件状态中。每次要更新 username时,就要调用 setState更新状态;每次要获取 username值,就要获取组件状态值。...如果我们数据请求组件挂载之前就完成,并且调用了setState函数将数据添加到组件状态中,对于未挂载组件则会报错。...如果没有key,Rεat就不知道列表中虚拟DOM元素与页面中哪个元素相对应。所以创建列表时候,不要忽略key。hooks 和 class 比较优势?

2.8K120

面试官最喜欢问几个react相关问题

比如做个放大镜功能setState了解setState之前,我们先来简单了解下 React 一个包装结构: Transaction:事务 (Transaction)是 React 中一个调用结构,用于包装一个方法...;getSnapshotBeforeUpdate(prevProps, prevState)可以更新之前获取最新渲染数据,它调用是 render 之后, update 之前;shouldComponentUpdate...调用 setState 之后发生了什么代码中调用 setState 函数之后,React 会将传入参数与之前状态进行合并,然后触发所谓调和过程(Reconciliation)。...React 元素树操作状态 (Operate State) : 可以直接通过 this.state 获取到包裹组件状态,并进行操作。...如下所示, username没有存储DOM元素内,而是存储组件状态中。每次要更新 username时,就要调用 setState更新状态;每次要获取 username值,就要获取组件状态值。

4K20

为什么 React16 对开发人员来说是一种福音

null 避免重新渲染 有时候我们需要通过函数来判断组件状态更新是否触发重新渲染, React 16 中,我们可以通过调用 setState 时传入 null 来避免组件重新渲染,这也就意味着,我们可以...16.4中,有关getDerivedStateFromProps修复使得派生状态更加可预测,因此错误使用结果更容易注意到。...getDerivedStateFromProps 会在调用 render 方法之前调用,它应该返回一个用于更新状态对象,或者如果不更新任何状态就返回 null。...它只父组件进行重新渲染时触发,而且不作为本地 setState 结果。 将nextProps.someValue与this.props.someValue进行比较。.../拿到props/状态变化时候刷新一次了,所以这三个方法标记为不安全。

1.4K30

前端一面react面试题指南_2023-03-01

因此在这些阶段发岀Ajax请求显然不是最好选择。 组件尚未挂载之前,Ajax请求将无法执行完毕,如果此时发出请求,将意味着组件挂载之前更新状态(如执行 setState),这通常是不起作用。...调用 setState 之后发生了什么 代码中调用 setState 函数之后,React 会将传入参数与之前状态进行合并,然后触发所谓调和过程(Reconciliation)。...,其实本身执行过程和代码都是同步,只是合成事件和钩子函数调用顺序更新之前,导致合成事件和钩子函数中没法立马拿到更新后值,形成了所谓“异步”,当然可以通过第二个参数setState(partialState...setState ,就会触发一次额外渲染,多调用了一次 render 函数,由于它是浏览器刷新屏幕前执行,所以用户对此是没有感知,但是我应当避免这样使用,这样会带来一定性能问题,尽量是 constructor...在此方法中执行必要清理操作: 清除 timer,取消网络请求或清除 取消 componentDidMount() 中创建订阅等; 这个生命周期一个组件卸载和销毁之前调用,因此你不应该再这个方法中使用

1.3K10

新手学习 react 迷惑点(完整版)

this 简单回顾 函数内部,this值取决于函数调用方式。...其实每种方法项目里用都是没什么问题,性能方面基本上可以忽略,对于美观性和顺手比较主观,所以总体来说就是看大家偏好咯,如果硬要推荐的话,我还是比较推荐第四种写法,美观而且不影响性能。...如果我们了解 setState 原理的话,可能就能解答这个问题了,setState事情不仅仅只是修改了 this.state 值,另外最重要是它会触发 React 更新机制,会进行 diff...因为 Vue 创建 UI 时候会把这些 data 给收集起来,并且在这些 data 访问器属性 setter 进行了重写,在这个重写方法里会去触发 UI 更新。...我回答是执行过程代码同步,只是合成事件和钩子函数调用顺序更新之前,导致合成事件和钩子函数中没法立马拿到更新后值,形式了所谓“异步”,所以表现出来有时是同步,有时是“异步”。 2.

94420

新手学习 react 迷惑点(完整版)

this 简单回顾 函数内部,this值取决于函数调用方式。...其实每种方法项目里用都是没什么问题,性能方面基本上可以忽略,对于美观性和顺手比较主观,所以总体来说就是看大家偏好咯,如果硬要推荐的话,我还是比较推荐第四种写法,美观而且不影响性能。...如果我们了解 setState 原理的话,可能就能解答这个问题了,setState事情不仅仅只是修改了 this.state 值,另外最重要是它会触发 React 更新机制,会进行 diff...因为 Vue 创建 UI 时候会把这些 data 给收集起来,并且在这些 data 访问器属性 setter 进行了重写,在这个重写方法里会去触发 UI 更新。...我回答是执行过程代码同步,只是合成事件和钩子函数调用顺序更新之前,导致合成事件和钩子函数中没法立马拿到更新后值,形式了所谓“异步”,所以表现出来有时是同步,有时是“异步”。 2.

1.2K20

【React学习笔记】React生命周期梳理(16.X前后两种)

(类似vuemounted) 可以发送ajax、设置状态setState「最好地方」 组件运行流程 state值改变 state更改 组间运行中,state更改 进行提问是否继续?...「只要setState就会触发更新、只要触发了更新就会走剩下流程。还会去对比虚拟dom、耗费性能 。其内部子组件生命周期也会触发一遍。」...所以16.3以后版本中移除了,该函数不能使用了。」 【循环】:重走state值更改流程如下: 进行提问是否继续? 触发shouldComponentUpdate函数。...「只要setState就会触发更新、只要触发了更新就会走剩下流程。还会去对比虚拟dom、耗费性能 。其内部子组件生命周期也会触发一遍。」...(同上边render。) getSnapshotBeforeUpdate(prevProps,prevState) 执行这个函数,获取之前状态一个快照。「需要有返回值。

2.7K30

antd mobile 作者教你写 React 受控组件和非受控组件

“下面的示意图中加上了两个对勾标记,勾选状态表示 Child 组件实际使用哪个状态 ” 这套方案听起来是可行,我们把它写成代码: 仔细看上面的代码,我们会发现在受控模式下存在两个问题: 原子性...:Child 内部状态更新会比 Parent 组件晚一个渲染周期,存在 tearing 问题 性能:因为是 useEffect 中通过 setState 来做状态同步,所以会额外触发一次渲染,...代码如下: 解决问题 2:性能 因为我们是 useEffect 去做状态同步,所以自然会额外触发一次 Child 组件重渲染。...那有没有办法 Child 组件 render 阶段就直接更新 value 状态呢? 并不可以,React 不允许我们 render 过程中调用 setState。...函数中调用 setState ,只是限制了只能触发当前组件自己 state 更新。

1.7K10

【React源码笔记】setState原理解析

首先要知道一点,setState本身执行过程是同步,只是因为react合成事件与钩子函数中执行顺序更新之前,所以不能直接拿到更新后值,形成了所谓“ 异步 ”。...异步可以避免react改变状态时,资源开销太大,要去等待同步代码执行完毕,使当前JS代码阻塞,这样带来不好用户体验。 那setState什么时候会执行异步操作或者同步操作呢?...同时也禁止shouldComponentUpdate中调用setState,因为调用setState会再次触发这个函数,然后这个函数又触发setState,然后再次触发这两个函数……这样会进入死循环...,此时是把该异步操作丢到队列里,并没有立刻去执行,而是执行interactiveUpdates函数里finally代码块,而previousIsBatchingUpdates之前赋值为false,...首先只render一次即批量更新情况,由合成事件触发时,reqeustWork函数中isBatchingUpdates将会变成true,isUnbatchingUpdates为false则直接return

1.9K10

新手学习 react 迷惑点(完整版)

this 简单回顾 函数内部,this值取决于函数调用方式。...其实每种方法项目里用都是没什么问题,性能方面基本上可以忽略,对于美观性和顺手比较主观,所以总体来说就是看大家偏好咯,如果硬要推荐的话,我还是比较推荐第四种写法,美观而且不影响性能。...如果我们了解 setState 原理的话,可能就能解答这个问题了,setState事情不仅仅只是修改了 this.state 值,另外最重要是它会触发 React 更新机制,会进行 diff...因为 Vue 创建 UI 时候会把这些 data 给收集起来,并且在这些 data 访问器属性 setter 进行了重写,在这个重写方法里会去触发 UI 更新。...我回答是执行过程代码同步,只是合成事件和钩子函数调用顺序更新之前,导致合成事件和钩子函数中没法立马拿到更新后值,形式了所谓“异步”,所以表现出来有时是同步,有时是“异步”。 2.

82810

React: States is tricky

,但是我对原文作者提出论点不是很感冒,但是作者提出三点对 React 新手来说是很容易忽略地方,所以我在这里只提出部分内容,而且把标题改为 ** 使用 React.setState 需要注意三点...如果可变对象使用了,但又不能在 shouldComponentUpdate() 中实现这种逻辑,仅在新 state 和之前 state 存在差异时候调用 setState() 可以避免不必要重新渲染...用 setState 来管理这些状态不但会造成很多不需要重新渲染,也会造成相关生命周期钩子一直调用,从而造成很多奇怪问题。...可以参考这篇文章 如果需要在 setState 后直接获取修改后值,那么有几个方案: 传入对应参数,不通过 this.state 获取 针对于之前例子,完全可以调用 fireOnSelect...对于之前例子,就可以这样: this.setState({ selection: value }, this.fireOnSelect) 使用 setTimeout setState 使用

40920
领券