Skip to content

Latest commit

 

History

History
41 lines (27 loc) · 2.04 KB

README.md

File metadata and controls

41 lines (27 loc) · 2.04 KB

New Server Side Render Component

The core WordPress component to render dynamic blocks (<ServerSideRender />) is not optimized and currently results in a poor user experience as demonstrated below (for the Flexible FAQs block).


Notice how the whole block content area is replaced with a spinner whenever a block attribute is updated.

To address this issue, a new <ServerSideRenderX /> component has been developed as a direct replacement for <ServerSideRender />. This new component is similar to the previous one except it uses the previously rendered HTML as the placeholder. This results in a much smoother transition between render states.


A spinner is also included along with the previous HTML as an indicator that the content is being updated.

Usage

Add the server-side-render-x.js file to the relevant place in your plugin (e.g. /src/block/components) and include it in your code as you would for any other component.

Then implement the new component in exactly the same way as for <ServerSideRender />.

<ServerSideRenderX
  block="my-plugin/my-block"
  attributes={attributes}
/>

There's also an additional (optional) prop available to specify the location for the spinner:

<ServerSideRenderX
  block="my-plugin/my-block"
  attributes={attributes}
  spinnerLocation={{right: 0, top: 10, unit: 'px'}}
/>

The above value for spinnerLocation is the default value used internally, so you can leave this blank unless you need to specifically change it.

More Details

For more details please see the full blog post.