Skip to content

Angular Three v3

Angular Three v3 is here with Angular 19 support! 🎉

What’s in Angular Three v3

  • Angular 19 support 🚀
  • Stable Testing API 🧪
  • Routed scenes support is back 🧭
  • Deprecation removals 🗑️

Angular 19 support

Angular Three v3 drops support for Angular 18 and below. This is because Angular 19 comes with a huge change to the Effect API (Learn more here). While nothing really changes much to consumers, the way Angular Three utilizes the Effect API changes. From the library perspective, this update also allows for Angular Three components to go standalone by default.

That said, there are several benefits of Angular 19 to Angular Three, and its consumers:

  • Lighter effects with less microtasks; One of the changes to the new Effect API is that a certain type of effects is scheduled in a smarter way instead of microtask-ing everything.
  • Faster execution in some areas; Another change to the new Effect API is that setting signals inside of effects is now allowed. Hence, untracked trick or allowSignalWrites is no longer needed.
  • Decreased library size; With default standalone: true and static analysis on imports array, Angular Three v3 is able to shed some of its bundle size.

Stable Testing API

Angular Three Testing API (angular-three/testing) has been graduated from Developer Preview. Nothing changes to the API itself. The Testing API has been used to test a lot of Angular Three usages since its experimental phase and we are happy to announce that it is now stable.

Routed scenes support

Due to a fix in Angular Router, Angular Three has been soft deprecating the Routed Scene use-case. However, the support is back in v3 with a solution.

Angular Three implements a custom RouterOutlet, NgtRouterOutlet, for routed scenes. All it does is to make sure the outlet can provide the NgtRendererFactory when it activates the routed components. This might seem like a workaround to some folks but we believe that it should work correctly for most use-cases. If you run into any problem at all, please file an issue on Github.

Check out the Routed Scene documentation for more information.

Deprecation removals

NgtObjectEventsHostDirective

Short-hand host directive for NgtObjectEvents has been removed.

// instead of
hostDirectives: [NgtObjectEventsHostDirective],
// use
hostDirectives: [{directive: NgtObjectEvents, inputs: [/* explicit inputs */], outputs: [/* explicit outputs */]}],

NgtsPivotControls from angular-three-soba/controls

The export NgtsPivotControls has been removed from angular-three-soba/controls. Update your import to angular-three-soba/gizmos

erp input in NgtrPhysics

erp input in NgtrPhysics has been removed as it’s been a no-op for a while.

Conclusion

This is a small major release to make sure Angular Three is not holding you back from Angular 19. Thank you. Happy coding!