1. function setProp(dom, key, value) {
    2. if (/^on/.test(key)) {
    3. dom[key.toLowerCase()] = value;
    4. } else if (key === 'style') {
    5. if (value) {
    6. for (let styleName in value) {
    7. if (value.hasOwnProperty(styleName)) {
    8. dom.style[styleName] = value[styleName];
    9. }
    10. }
    11. }
    12. } else {
    13. dom.setAttribute(key, value);
    14. }
    15. return dom;
    16. }
    17. export function setProps(elem, oldProps, newProps) {
    18. for (let key in oldProps) {
    19. if (key !== 'children') {
    20. if (newProps.hasOwnProperty(key)) {
    21. setProp(elem, key, newProps[key]);
    22. } else {
    23. elem.removeAttribute(key);
    24. }
    25. }
    26. }
    27. for (let key in newProps) {
    28. if (key !== 'children') {
    29. setProp(elem, key, newProps[key])
    30. }
    31. }
    32. }