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]}`
        )
      }
    }
  }
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.'
     }
   };
 },