Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- export function updateDomProperties(dom, prevProps, nextProps) {
- const isEvent = name => name.startsWith("on");
- const isAttribute = name => !isEvent(name) && name != "children";
- // Remove event listeners
- Object.keys(prevProps)
- .filter(isEvent)
- .forEach(name => {
- const eventType = name.toLowerCase().substring(2);
- dom.removeEventListener(eventType, prevProps[name]);
- });
- // Remove attributes
- Object.keys(prevProps)
- .filter(isAttribute)
- .forEach(name => {
- dom[name] = null;
- });
- // Set new attributes
- Object.keys(nextProps)
- .filter(isAttribute)
- .forEach(name => {
- dom[name] = nextProps[name];
- });
- // Set new eventListeners
- Object.keys(nextProps)
- .filter(isEvent)
- .forEach(name => {
- const eventType = name.toLowerCase().substring(2);
- dom.addEventListener(eventType, nextProps[name]);
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement