Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Predictable state management for ember apps

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
NotificationsYou must be signed in to change notification settings

ember-redux/ember-redux

Repository files navigation

TravisCode ClimateScoreDownloadsnpm package

Predictable state management for ember apps

Installation

ember redux requires ember v3.6+ and node >= 8. If you need support for an older version of ember use the v5 release

ember install ember-redux

Documentation and Examples

https://ember-redux.com

Demo

Counterhttps://ember-twiddle.com/5bee7478e4216abe49f1c0a439bae352

TodoMVChttps://ember-twiddle.com/4bb9c326a7e54c739b1f5a5023ccc805

Usage

Container Component

importComponentfrom'@ember/component';importhbsfrom'htmlbars-inline-precompile';import{connect}from'ember-redux';importgetUsersByAccountIdfrom'../reducers';importfetchfrom'fetch';conststateToComputed=(state,attrs)=>({users:getUsersByAccountId(state,attrs.accountId)});constdispatchToActions=(dispatch)=>({remove:(id)=>fetch(`/api/users/${id}`,{method:'DELETE'}).then(fetched=>fetched.json()).then(response=>dispatch({type:'REMOVE_USER',id:id}))});constUserListComponent=Component.extend({layout:hbs`    {{yield users (action "remove")}}  `});exportdefaultconnect(stateToComputed,dispatchToActions)(UserListComponent);

Presentation Component

importComponentfrom'@ember/component';importhbsfrom'htmlbars-inline-precompile';constUserTableComponent=Component.extend({layout:hbs`    {{#each users as |user|}}      <div>{{user.name}}</div>      <button onclick={{action remove user.id}}>remove</button>    {{/each}}  `});exportdefaultUserTableComponent;

Composition

{{#user-listaccountId=accountIdas|usersremove|}}{{user-tableusers=usersremove=remove}}{{/user-list}}

Octane Support?

As of version 6 ember-redux now supports both ember component and glimmer component. One brief example of glimmer components and ember redux below.

importComponentfrom'@glimmer/component';import{action}from'@ember/object';import{connect}from'ember-redux';importgetUsersByAccountIdfrom'../reducers';importfetchfrom'fetch';conststateToComputed=(state,attrs)=>({users:getUsersByAccountId(state,attrs.accountId)});constdispatchToActions=(dispatch)=>({remove:(id)=>fetch(`/api/users/${id}`,{method:'DELETE'}).then(fetched=>fetched.json()).then(response=>dispatch({type:'REMOVE_USER',id:id}))});classMyClazzextendsComponent{  @actionexample(){this.actions.remove();}}exportdefaultconnect(stateToComputed,dispatchToActions)(MyClazz);

How do I enable time travel debugging?

  1. Install theredux dev tools extension.

  2. Enjoy!

Running Tests

yarnember test

License

Copyright © 2019 Toran Billupshttps://toranbillups.com

Licensed under the MIT License

About

Predictable state management for ember apps

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Contributors14


[8]ページ先頭

©2009-2025 Movatter.jp