前文我们知道,在vue单文件组件中,最终会导出一个对象。
vue已经为我们预先指定好了这个对象一些选项,如data, components, methods, computed, watch, mixins, filters, 钩子函数等等。本文我们将从组件的使用场景出发,详解这些属性和方法的用法。
组件内部属性
这里的内部指的是,组件自用的,不与外部产生交互的属性。如果我们想构造出一个不与外部交互的静态页面,那么只使用这里的选项就可以了。
data用于保存组件内部状态
对于一个组件,它独有的内部状态全部保存在data中。组件被创建后,你可以在任何地方更改data中的状态。与状态绑定的一切都会跟随状态的变化响应式地变化:绑定的DOM会重新渲染,绑定的计算属性(computed)会自动更新,对应的观察者(watch)会自动执行。
前文我们知道,在vue单文件组件中,最终会导出一个对象。
vue已经为我们预先指定好了这个对象一些选项,如data, components, methods, computed, watch, mixins, filters, 钩子函数等等。本文我们将从组件的使用场景出发,详解这些属性和方法的用法。
组件内部属性
这里的内部指的是,组件自用的,不与外部产生交互的属性。如果我们想构造出一个不与外部交互的静态页面,那么只使用这里的选项就可以了。
data用于保存组件内部状态
对于一个组件,它独有的内部状态全部保存在data中。组件被创建后,你可以在任何地方更改data中的状态。与状态绑定的一切都会跟随状态的变化响应式地变化:绑定的DOM会重新渲染,绑定的计算属性(computed)会自动更新,对应的观察者(watch)会自动执行。
{{content}}
hello world
  | 
  | 
//logTimeInterval.js
import moment from ‘moment’;
import { LOG_INTERVAL } from ‘@/constants/application’;
export default {
  data() {
    return {
      LOG_INTERVAL,
      interval: LOG_INTERVAL.ONEWEEK.type,
    };
  },
  computed: {
    targetTimeInterval() {
      const { time, unit } = LOG_INTERVAL[this.interval];
      return {
        from: moment().subtract(time, unit).valueOf(),
        to: moment().valueOf(),
      };
    },
  },
};
//组件
{{content}}
{{targetTimeInterval}}
import logTimeInterval from ‘./logTimeInterval.js’;
export default {
    mixins: [logTimeInterval],
    data() {
        return {
            content: ‘timeInterval:’,
        };
    },
};
//logTimeInterval.vue
//组件
{{content}}
{{targetTimeInterval}}
import logTimeInterval from ‘./logTimeInterval.vue’;
export default {
    extends: logTimeInterval,
    data() {
        return {
            content: ‘timeInterval:’,
        };
    },
}
```
hello world
  | 
  | 
//logTimeInterval.js
import moment from ‘moment’;
import { LOG_INTERVAL } from ‘@/constants/application’;
export default {
  data() {
    return {
      LOG_INTERVAL,
      interval: LOG_INTERVAL.ONEWEEK.type,
    };
  },
  computed: {
    targetTimeInterval() {
      const { time, unit } = LOG_INTERVAL[this.interval];
      return {
        from: moment().subtract(time, unit).valueOf(),
        to: moment().valueOf(),
      };
    },
  },
};
//组件
前文我们知道,在vue单文件组件中,最终会导出一个对象。
vue已经为我们预先指定好了这个对象一些选项,如data, components, methods, computed, watch, mixins, filters, 钩子函数等等。本文我们将从组件的使用场景出发,详解这些属性和方法的用法。
组件内部属性
这里的内部指的是,组件自用的,不与外部产生交互的属性。如果我们想构造出一个不与外部交互的静态页面,那么只使用这里的选项就可以了。
data用于保存组件内部状态
对于一个组件,它独有的内部状态全部保存在data中。组件被创建后,你可以在任何地方更改data中的状态。与状态绑定的一切都会跟随状态的变化响应式地变化:绑定的DOM会重新渲染,绑定的计算属性(computed)会自动更新,对应的观察者(watch)会自动执行。
{{content}}
hello world
  | 
  | 
//logTimeInterval.js
import moment from ‘moment’;
import { LOG_INTERVAL } from ‘@/constants/application’;
export default {
  data() {
    return {
      LOG_INTERVAL,
      interval: LOG_INTERVAL.ONEWEEK.type,
    };
  },
  computed: {
    targetTimeInterval() {
      const { time, unit } = LOG_INTERVAL[this.interval];
      return {
        from: moment().subtract(time, unit).valueOf(),
        to: moment().valueOf(),
      };
    },
  },
};
//组件
{{content}}
{{targetTimeInterval}}
import logTimeInterval from ‘./logTimeInterval.js’;
export default {
    mixins: [logTimeInterval],
    data() {
        return {
            content: ‘timeInterval:’,
        };
    },
};
//logTimeInterval.vue
//组件
{{content}}
{{targetTimeInterval}}
import logTimeInterval from ‘./logTimeInterval.vue’;
export default {
    extends: logTimeInterval,
    data() {
        return {
            content: ‘timeInterval:’,
        };
    },
}
```
import logTimeInterval from ‘./logTimeInterval.js’;
export default {
    mixins: [logTimeInterval],
    data() {
        return {
            content: ‘timeInterval:’,
        };
    },
};
//logTimeInterval.vue
//组件
前文我们知道,在vue单文件组件中,最终会导出一个对象。
vue已经为我们预先指定好了这个对象一些选项,如data, components, methods, computed, watch, mixins, filters, 钩子函数等等。本文我们将从组件的使用场景出发,详解这些属性和方法的用法。
组件内部属性
这里的内部指的是,组件自用的,不与外部产生交互的属性。如果我们想构造出一个不与外部交互的静态页面,那么只使用这里的选项就可以了。
data用于保存组件内部状态
对于一个组件,它独有的内部状态全部保存在data中。组件被创建后,你可以在任何地方更改data中的状态。与状态绑定的一切都会跟随状态的变化响应式地变化:绑定的DOM会重新渲染,绑定的计算属性(computed)会自动更新,对应的观察者(watch)会自动执行。
{{content}}
hello world
  | 
  | 
//logTimeInterval.js
import moment from ‘moment’;
import { LOG_INTERVAL } from ‘@/constants/application’;
export default {
  data() {
    return {
      LOG_INTERVAL,
      interval: LOG_INTERVAL.ONEWEEK.type,
    };
  },
  computed: {
    targetTimeInterval() {
      const { time, unit } = LOG_INTERVAL[this.interval];
      return {
        from: moment().subtract(time, unit).valueOf(),
        to: moment().valueOf(),
      };
    },
  },
};
//组件
{{content}}
{{targetTimeInterval}}
import logTimeInterval from ‘./logTimeInterval.js’;
export default {
    mixins: [logTimeInterval],
    data() {
        return {
            content: ‘timeInterval:’,
        };
    },
};
//logTimeInterval.vue
//组件
{{content}}
{{targetTimeInterval}}
import logTimeInterval from ‘./logTimeInterval.vue’;
export default {
    extends: logTimeInterval,
    data() {
        return {
            content: ‘timeInterval:’,
        };
    },
}
```
import logTimeInterval from ‘./logTimeInterval.vue’;
export default {
    extends: logTimeInterval,
    data() {
        return {
            content: ‘timeInterval:’,
        };
    },
}
```