UNPKG

shu-c-view

Version:

rollup 打包vue组件库框架

65 lines (62 loc) 1.79 kB
/** * 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 = this.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 = this.kebabCase(eventName); // compatible with camel case if (events[eventName]) { console.warn( `[Element Migrating][${this.$options.name}][Event]: ${events[eventName]}` ); } } }, methods: { getMigratingConfig() { return { props: {}, events: {} }; }, kebabCase(str) { const hyphenateRE = /([^-])([A-Z])/g; return str .replace(hyphenateRE, '$1-$2') .replace(hyphenateRE, '$1-$2') .toLowerCase(); } } };