class.js 801 B

123456789101112131415161718192021222324252627
  1. function updateClass(oldVnode, vnode) {
  2. let cur;
  3. let name;
  4. const elm = vnode.elm;
  5. let oldClass = oldVnode.data.class;
  6. let klass = vnode.data.class;
  7. if (!oldClass && !klass)
  8. return;
  9. if (oldClass === klass)
  10. return;
  11. oldClass = oldClass || {};
  12. klass = klass || {};
  13. for (name in oldClass) {
  14. if (oldClass[name] && !Object.prototype.hasOwnProperty.call(klass, name)) {
  15. // was `true` and now not provided
  16. elm.classList.remove(name);
  17. }
  18. }
  19. for (name in klass) {
  20. cur = klass[name];
  21. if (cur !== oldClass[name]) {
  22. elm.classList[cur ? "add" : "remove"](name);
  23. }
  24. }
  25. }
  26. export const classModule = { create: updateClass, update: updateClass };
  27. //# sourceMappingURL=class.js.map