The remainder of this page takes a deeper look at the grid's React rendering, including React Render Cycles and also React Developer Tools.
The grid renders cells using React, and all parent components of the cells are also written in React, all the way back to the client application. This means all the UI from your application down to the cells, including any provided React Cell Renderers, is all 100% React.
The example below demonstrates AG Grid rendered 100% in React. Note the example has the Age column customised using a React Component.
See Cell Renderers for full details on creating Cell Renderers.
You can profile the example above using the React Developer Tools and see the internals of AG Grid written in React.
If you want to profile (using React Developer Tools) the example above, do the following:
We do not advise using the React Developer Tools on the AG Grid website, or inside Plunker, as both the AG Grid website and Plunker are also written in React, which complicates the React Developer Tools.
As the grid is written in React, we welcome trashing it using React profiling tools for how well it plays alongside your application with regards component refresh and wasted render cycles.

Below is an example showing different types of React Cell Editors. Note the following:
cellEditorPopup=true). The editing happens in a popup.See Cell Editors for full details on creating Cell Editors.
Below is an example showing a grid configured with a custom React Column Header component.
See Header Components for full details on creating Header Components.
AG Grid does not cause unnecessary render cycles. The following example demonstrates this.
Below each Column is configured to use a Cell Renderer that prints into the Cell the number of times the Cell has had it's render method called. This tells us how many times the render method is called. For non wasted renders, the render method should only get called if it's contents change. Note that the number stays at '1' even if you do any of the following:
Clicking 'Increase Medals' will re-render the Cell Renderer's as the displayed value is updated.
Note that we memoise the Cell Renderer using const RenderCounterCellRenderer = memo( (params) => {.
The rendering of AG Grid is 100% React regardless of what grid features are used.
Below is an example with Range Selection, Checkbox Click Selection and Row Grouping.
Below is an example using Master Detail. When the master grid is AG Grid React, then the detail grids also use AG Grid React. In the example both Master and Detail grids are using React Cell Renderers.
Above we saw customising the grid Cells (Renderers and Editors) and Headers using React Components. All of the other customisations allowed by AG Grid are also supported.
The example below shows the following customisations: