# ember-stable-array

> hack for pre glimmer fast each re-renders

Latest version **0.0.1** (published 2015-11-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install ember-stable-array
pnpm add ember-stable-array
yarn add ember-stable-array
bun add ember-stable-array
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2015-11-10 |
| First published | 2015-11-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.10.0 |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | stefanpenner |
| Keywords | ember-addon |

## Links

- npm: https://www.npmjs.com/package/ember-stable-array
- npm.io page: https://npm.io/package/ember-stable-array

## Dependencies (1)

- [ember-cli-babel](https://npm.io/package/ember-cli-babel.md) ^5.1.5

## Recent versions

- 0.0.1 (latest) — 2015-11-10
- 0.0.0 — 2015-11-10

## README

# Ember-stable-array

This is for pre 1.13.x ember

This is a hack, to get faster `each` re-rendering pre-glimmer.  It does so by
keeping a stable array of proxies, mutating the length of the array and proxy
content.

Yes you will get proxies all over the place, yes this will potentially cause
you some grief. But it can perform (especially for list sorting/filtering)
signifcantly better.

## Installation

`ember install ember-stable-array`

```
import stable from 'ember-stable-array/computed';
import Ember from 'ember';

export default Ember.Component.extend({
  init() {
    this._super(...arguments);
    this.set('columns', [1,2,3,4,5]);
    this.set('data', generateRandomArray(250));
  },

  stable: stable('data'),

  actions: {
    newData() {
      this.set('data', generateRandomArray(250));
    }
  }
});

function name() {
  return Math.random().toString(36);
}

function generateRandomArray(count) {
  var output = new Array(count);

  for (var i = 0; i < count; i++) {
    output[i] = { name: name() };
  }

  return output;
}
```

```
{{#each row in stableData}}
  {{#each column in columns}}
    {{other-component name=row.name}}
  {{/each}}
{{/each}}
```

## Running

* `ember server`
* Visit your app at http://localhost:4200.

## Running Tests

* `npm test` (Runs `ember try:testall` to test your addon against multiple Ember versions)
* `ember test`
* `ember test --server`

## Building

* `ember build`

For more information on using ember-cli, visit [http://www.ember-cli.com/](http://www.ember-cli.com/).

---
_Source: https://npm.io/package/ember-stable-array · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
