/
githubmirror
/
element
Обзор
Документация
Войти
/
githubmirror
/
element
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
src/mixins/migrating.js
54 строки
2 KB
Simona
Fix: migrating config not compatible with camel case props and events (#15260)
25 апр 2019, 11:59
25 апр 2019, 11:59
959b7b4
Код
Авторство
О чём код?
import { kebabCase } from 'element-ui/src/utils/util'; /** * Show migrating guide in browser console. * * Usage: * import Migrating from 'element-ui/src/mixins/migrating'; * * mixins: [Migrating] * * add getMigratingConfig method for your component. * getMigratingConfig() { * return { * props: { * 'allow-no-selection': 'allow-no-selection is removed.', * 'selection-mode': 'selection-mode is removed.' * }, * events: { * selectionchange: 'selectionchange is renamed to selection-change.' * } * }; * }, */ export default { mounted() { if (process.env.NODE_ENV === 'production') return; if (!this.$vnode) return; const { props = {}, events = {} } = this.getMigratingConfig(); const { data, componentOptions } = this.$vnode; const definedProps = data.attrs || {}; const definedEvents = componentOptions.listeners || {}; for (let propName in definedProps) { propName = kebabCase(propName); // compatible with camel case if (props[propName]) { console.warn(`[Element Migrating][${this.$options.name}][Attribute]: ${props[propName]}`); } } for (let eventName in definedEvents) { eventName = kebabCase(eventName); // compatible with camel case if (events[eventName]) { console.warn(`[Element Migrating][${this.$options.name}][Event]: ${events[eventName]}`); } } }, methods: { getMigratingConfig() { return { props: {}, events: {} }; } } };