Maximizing Component Flexibility
Vue.js components take props and slots as input; their output is rendered as HTML and emitted events.
To maximize component flexibility, it always makes sense to leverage slots and props.
Leveraging props and default values judiciously means a component can be reused and extended. For example, instead of hardcoding a value in the component, we could set it as a default prop. In this case, date defaults to the current date, new Date(). We then extract the epoch using a computed property:
<template>
  <div>Date as epoch: {{ epoch }}</div>
</template>
<script>
export default {
  props: {
    date: {
      type: Date,
      default() {
        return new Date()
      }
    }
  },
  computed: {
   ...