## Understanding binding as reference

Handsontable binds to your data source (array or object) by reference. Therefore, all the data entered in the grid will alter the original data source.

In complex applications, you may have a purpose to change data source programatically (outside of Handsontable). A value change that was done programatically will not be presented on the screen unless you refresh the grid on screen using the render method.

## But I want to change my data without rendering changes!

In case you want to keep separate working copy of data for Handsontable, it is suggested to clone the data source before you load it to Handsontable.

This can easily be done with JSON.parse(JSON.stringify(data)) or some other deep-cloning function.

In a similar way, you may find it useful to clone data before saving it.

That would be useful to make programmatic changes that would be saved to server but kept not invisible to the user.