props.js 553 B

1234567891011121314151617181920212223242526272829303132
  1. export function observeProps(props) {
  2. if (!props) {
  3. return;
  4. }
  5. Object.keys(props).forEach(function (key) {
  6. var prop = props[key];
  7. if (prop === null || !('type' in prop)) {
  8. prop = {
  9. type: prop
  10. };
  11. }
  12. var _prop = prop,
  13. observer = _prop.observer;
  14. prop.observer = function () {
  15. if (observer) {
  16. if (typeof observer === 'string') {
  17. observer = this[observer];
  18. }
  19. observer.apply(this, arguments);
  20. }
  21. this.set();
  22. };
  23. props[key] = prop;
  24. });
  25. }