если я импортирую ElementUI, я получаю это
blockquote>TypeError: Cannot read property 'install' of undefined
Ваш код неправильно импортирует ElementUI как именованный импорт. Пакет
element-ui
не имеет именованного экспортаElementUI
, поэтому он будетundefined
. Импорт по умолчанию - это то, что вы бы использовали там (но это не то, что вам действительно нужно)://import { ElementUI } from 'element-ui' // DON'T DO THIS import ElementUI from 'element-ui' Vue.use(ElementUI)
Поскольку вы импортируете элементы по отдельности (чтобы сэкономить на размере пакета), вы следует также избегать импорта ElementUI в глобальном масштабе , как это, потому что это будет препятствовать экономии размера пакета.
Для меня не совсем понятно из документации Element, но кажется, что Element расширяет компоненты Vue с помощью $ verify из коробки.
blockquote>Документы утверждают, что глобальный метод
$confirm
доступен только в том случае, если полностью импортирует элемент следующим образом:import ElementUI from 'element-ui' Vue.use(ElementUI)
Если вы импортируете элементы по отдельности, вам следует вместо этого импортировать метод
confirm
локально в компоненте. То есть импортируйтеMessageBox
для его методаconfirm
:// MyComponent.vue import { MessageBox } from 'element-ui' export default { methods: { handleDelete(row) { MessageBox.confirm(`Do you really want to delete ${row.name} ?`, "Confirmation", { confirmButtonText: "OK", cancelButtonText: "Cancel", type: "warning" }) } } }