<p dir="auto">Spinoff discussion of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="31034633" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/1373" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/1373/hovercard" href="https://github.com/facebook/react/issues/1373">#1373</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="57415826" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/3128" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/3128/hovercard" href="https://github.com/facebook/react/issues/3128">#3128</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="58488892" data-permission-text="Title is private" data-url="https://github.com/facebook/react/issues/3228" data-hovercard-type="issue" data-hovercard-url="/facebook/react/issues/3228/hovercard" href="https://github.com/facebook/react/issues/3228">#3228</a>.</p>
<p dir="auto">We're pretty sure that we need to change the current way refs work (see above). However, the new ref callbacks are also not ideal because it relies on some imperative code and suffers from timing issues like all imperative life-cycles. It is also not very convenient without arrow functions. Even with arrow functions it might suffer from performance issues.</p>
<p dir="auto">A few things refs tries to solve:</p>
<ul dir="auto">
<li>Imperative access to APIs that doesn't have declarative counter-parts yet. E.g. DOM layout.</li>
<li>Fast-path down the tree to update deeply to by-pass reconciliation. Perf-optimization.</li>
<li>Get the current state of a child that you don't want to control without duplicating state (which might possibly diverge).</li>
<li>Send signals/pulses downwards.</li>
</ul>
<p dir="auto">In Internet Explorer, a disabled radio button will fire an onChange event when double clicked.  The checked state does not change, but the onChange event fires nonetheless.</p>
<p dir="auto"><a href="http://jsfiddle.net/abzosdau/4/" rel="nofollow">http://jsfiddle.net/abzosdau/4/</a></p>