This is a reference for upgrading your application to v3 of Semantic UI React.
The main change in v3 is the support of native refs to components to avoid usage of deprecated ReactDOM.findDOMNode(). It means that ref prop can be used to get a reference to the underlying DOM element instead of a React component instance.
For example, you can use ref to get a reference to the underlying DOM element of Button component:
All components from Semantic UI React v3 support native ref forwarding.
Button, Input, TextAreaButton, Input and TextArea implemented some methods like focus() and blur() on their class instances. However, now you will get a reference to the underlying DOM element instead of a React component instance. You should be able to call these methods directly on the DOM element without any issues.
Ref componentBecause of the native ref support, Ref component is no longer needed and was removed as it used deprecated APIs.
As we exported Ref component and recommended its usage everywhere we moved out Ref component to a separate package (@semantic-ui-react/component-ref). This means that you can use it already with both v2 & v3 to make the upgrade smoother.
More details on this change in Semantic-Org/Semantic-UI-React#4286.
Visibity componentThe main reason is performance that is far away from native APIs. We suggest to use Intersection Observer API directly or via React wrappers, for example: react-intersection-observer.
As it's not a straightforward replacement that may cause issues with adoption we moved out Visibility component to a separate package (@semantic-ui-react/component-visibility). This means that you can use it already with v2 or upcoming v3:
More details on this change in Semantic-Org/Semantic-UI-React#4257.
Transition componentSome static properties on Transition component were removed:
This properties should not be used in public APIs, but it's still a breaking change.