November 2021 – released Sitecore Headless Rendering 19.0.0
Highlights
- The Vue SDK and sample have been updated to Vue 3.
- The Headless Services module now deploys its items via Items as Resources (IAR), thereby enabling module upgrades without the need to update SQL data.
- The Horizon authoring interface now supports Next.js.
- You can now use the Layout Service and Next.js to enable static site generation of Sitecore MVC sites, and incrementally convert them to a headless architecture.
- The documentation for Headless Services, JavaScript Rendering (JSS), and ASP.NET Core Rendering has been refactored, reviewed, and consolidated into a common location on
doc.sitecore.com
. - The Horizon authoring interface now supports ASP.NET Core Rendering.
New features/improvements
Context | Description | ADO no. |
---|---|---|
Headless Services | JavaScript Rendering - All the JavaScript packages are now published as both CommonJS and ESM. | 454376 |
Headless Services | The Vue SDK and sample have been updated to Vue 3. | 459777 |
Headless Services | The Headless Services module items are now deployed as Items as Resources . | 467836 |
Headless Services | The Horizon authoring interface now supports Next.js. | 468017 |
Headless Services | You can now use the Layout Service and Next.js to enable static site generation of Sitecore MVC sites, and incrementally convert them to a headless architecture. | 479060 |
Headless Services | The documentation for Headless Services, JavaScript Rendering (JSS), and ASP.NET Core Rendering has been refactored, reviewed, and consolidated into a common location on doc.sitecore.com . | 480320 |
Headless Services | The Horizon authoring interface now supports ASP.NET Core Rendering. | 494050 |
Headless Services | React, Next.js - The rendering performance of the React-based SDKs and samples has been improved with the removal of a potential double-rendering scenario. | 468237 |
Headless Services | The Next.js sample has been updated to demonstrate the use of dynamic component imports. | 468937 |
Headless Services | The Next.js SDK and sample have been updated to Next.js 11. | 474974 |
Headless Services | The GraphQL endpoints now allow unauthenticated CORS preflight OPTIONS requests by default, enabling the passing of sc_apikey via HTTP Header from browsers. This can be disabled by using false on the endpoint. | 475186 |
Headless Services | The Next.js sample can now be created with an --empty argument, resulting in a simplified starter without any boilerplate, components, or code-first support. This argument is useful when implementing static generation for Sitecore MVC sites. | 479298 |
Headless Services | The client dictionary and sitemap services now allow you to customize the jssAppTemplateId that is used when determining the root item of a site. | 483281 |
Headless Services | React, Angular, Vue - The samples now support the fetchWith create option and allow you use of GraphQL or REST-based services, and are consistent with Next.js. | 488863 |
Headless Services | Vue - The sc-placeholder component now uses fragments by default and does not render an extra root. | 474394 |
Headless Services | Headless Proxy - The /dist path has been removed from pathRewriteExcludeRoutes config property, because it was unnecessary. | 481856 |
Headless Services | The ASP.NET Core and Next.js dotnet new templates have been updated to 10.2 and Headless Rendering 19.0. | 490137 |
Headless Services | Vue, React - The detection of connected and disconnected mode has been improved. | 485189 |
Headless Services | React, Angular, Vue - To be consistent with Next.js, we have removed the deprecated dataApi in favor of client service wrappers. | 486242 |
Headless Services | A Render as HTML checkbox has been added to the Layout Service options on Sitecore renderings. This checkbox is the equivalent of the existing json=false rendering parameter, and results in the output of rendering HTML to the Layout Service for MVC-compatible rendering types. | 479294 |
Headless Services | JavaScript Rendering - The service clients now provide a timeout option. | 480317 |
Headless Services | React, Headless Proxy - To be consistent with Next.js, Dictionary calls now utilize the RestDictionaryService . | 487865 |
Headless Services | React, Angular, Vue - To be consistent with Next.js, the samples now use the default Layout Service configuration by default. | 493438 |
Breaking changes
Context | Description | ADO no. |
---|---|---|
Headless Services | @sitecore-jss TypeScript types that previously used any may need to be updated with more specific definitions. | 445601 |
Headless Services | Upgraded installations must use the upgrade tool to remove Headless Services items from the Sitecore master database, as these tems are now delivered as Items as Resources (IAR) files. | 467836 |
Headless Services | The React and Next.js samples have been updated to avoid an extra React rendering. | 468237 |
Headless Services | Next.js implementations must upgrade to Next.js 11. | 474974 |
Headless Services | Vue implementations must upgrade to Vue 3. | 459777 |
Headless Services | All the samples/frameworks must be updated to use the new layout and dictionary services instead of the deprecated dataApi. | 486242 |
Headless Services | Dictionary calls should be updated to use the RestDictionaryService. | 487865 |
Headless Services | The JavaScript Rendering apps should use the default layoutServiceConfiguration by default. | 493438 |
Headless Services | The Session state is no longer supported in GraphQL endpoints. This removes session locking and improves performance. | 457362 |
Resolved issues
The following issues have been fixed:
Context | Description | ADO no. |
---|---|---|
Headless Services | Session state locking can impact the performance of GraphQL queries. | 457362 |
Headless Services | If you invoke the Layout Service on pages that contain rendering items that do not exist in the database, an Object reference error can occur. | 462233 |
Headless Services | Next.js - If you use multiple catch-all routes with SSG, opening a route in the Experience Editor can cause a 404 error. | 483286 |
Headless Services | Vue - If you open or navigate between pages, a page not found error may occur. | 485147 |
Headless Services | React - The Experience Forms React implementation doesn't apply CSS classes that are configured by a content author. | 483539 |
Headless Services | Next.js - There is no documentation about the process or limitations of using Sitecore Forms with Next.js. | 485498 |
Headless Services | Angular - You cannot navigate to language URLs. | 485127 |
Headless Services | ASP.NET Core - If you use the Image tag helper, custom attributes are lost in Experience Editor. | 473634 |
Headless Services | JavaScript Rendering - The embedded JSS app sample does not build. | 475487 |
Headless Services | The publishing webhooks stop processing when a non-executing webhook is encountered. | 483283 |
Headless Services | The Layout Service date field output is inconsistent between Experience Edge and Headless Services. | 485040 |
Headless Services | React, Next.js - When rendering raw HTML components, placeholders can throw a void element tag error for self-closing tag elements. | 487382 |
Headless Services | The Layout Service can throw a NullReferenceException when it is invoked by a known robot user agent. | 488970 |
Headless Services | The Layout Service does not resolve the root page item if the site has a virtual folder. | 489431 |
Headless Services | React - When running React in connected mode against development environments, proxied Sitecore requests, for example, visitor identification, media, and so on, can cause 504, Gateway Timeout errors. Setting changeOrigin: true in the CRA proxy resolves this issue. | 496886 |
Headless Services | ASP.NET Core - If a rendering content resolver returns two or more fields as empty strings, the ASP.NET Core rendering can throw an ArgumentException . | 489544 |
Headless Services | Preflight OPTIONS requests against the mirrored Experience Edge schema will fail when using sc_apikey in an HTTP Header, which is different behavior than Experience Edge. | 479265 |