ember-introjs
Version:
An Ember Component for intro.js
35 lines (27 loc) • 799 B
Markdown
## Don't introduce side-effects in computed properties
### Rule name: `no-side-effects`
When using computed properties do not introduce side effects. It will make reasoning about the origin of the change much harder.
```javascript
import Ember from 'ember';
const {
Component,
computed: { filterBy, alias },
} = Ember;
export default Component.extend({
users: [
{ name: 'Foo', age: 15 },
{ name: 'Bar', age: 16 },
{ name: 'Baz', age: 15 }
],
// GOOD:
fifteen: filterBy('users', 'age', 15),
fifteenAmount: alias('fifteen.length'),
// BAD:
fifteenAmount: 0,
fifteen: computed('users', function() {
const fifteen = this.get('users').filterBy('items', 'age', 15);
this.set('fifteenAmount', fifteen.length); // SIDE EFFECT!
return fifteen;
})
});
```