slots.js 324 B

12345678910111213141516
  1. /**
  2. * Use scopedSlots in Vue 2.6+
  3. * downgrade to slots in lower version
  4. */
  5. export const SlotsMixin = {
  6. methods: {
  7. slots(name = 'default', props) {
  8. const { $slots, $scopedSlots } = this;
  9. if ($scopedSlots[name]) {
  10. return $scopedSlots[name](props);
  11. }
  12. return $slots[name];
  13. }
  14. }
  15. };