I have seen people writing code using both set import from ‘@ember/object’ and this.set(key, value). I don’t understand the difference between those two. Can somebody please help me understand the difference?
Your best starting point for questions like this is the API docs! You can search for
set and it will take you to theses two definitions:
The net is that you can use the imported function
set with any object in JS, whether it’s related to Ember in any way or not.
this.set is a method that only exists on
EmberObject and its subclasses, so you can only use it when you’re working in one of those subclasses (like
- You therefore cannot use
this.setin a Glimmer component: it is not a subclass of
- But you also wouldn’t normally need to, because in Ember Octane, you generally would be using auto-tracking with the
@trackeddecorator, and therefore could just use normal JS assignment without worrying about