- Notifications
You must be signed in to change notification settings - Fork35
Predictable state management for ember apps
License
MIT, MIT licenses found
Licenses found
ember-redux/ember-redux
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Predictable state management for ember apps
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-reduxCounterhttps://ember-twiddle.com/5bee7478e4216abe49f1c0a439bae352
TodoMVChttps://ember-twiddle.com/4bb9c326a7e54c739b1f5a5023ccc805
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);
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;
{{#user-listaccountId=accountIdas|usersremove|}}{{user-tableusers=usersremove=remove}}{{/user-list}}
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);
Install theredux dev tools extension.
Enjoy!
yarnember testCopyright © 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
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors14
Uh oh!
There was an error while loading.Please reload this page.