Возможно, вы можете стать спасителем моего времени.Pagekit/VueJS: Ошибка добавления VueJS-компонента
Я пытаюсь реализовать vue-компоненты для моего расширения.
Я не могу включить пользовательские компоненты Vue.js. Я последовал за https://pagekit.com/docs/developer-basics/vuejs-and-webpack, чтобы создать компонент, который должен предоставить модальное поле, которое должно быть включено в представление настроек моего расширения. Этот модал должен использоваться несколько раз на одной странице с другим содержимым, поэтому я бы предпочел использовать компонентный компонент вместо жесткого кодирования его снова и снова в окне настроек (views/settings.php
).
Для архивирования этого я создал следующий файл: app/components/template.vue
<template>
<div>Test</div>
</template>
<script>
module.exports = {
section: {
label: 'Template',
priority: 100
}
};
window.Settings.components['template'] = module.exports;
</script>
Я также обновил webpack.config.js
module.exports = [
{
entry: {
"settings": "./app/views/admin/settings",
"template": "./app/components/template.vue"
},
output: {
filename: "./app/bundle/[name].js"
},
module: {
loaders: [
{test: /\.vue$/, loader: "vue"}
]
}
}
];
и я зарегистрировал компонент в index.php
'events' => [
'view.scripts' => function ($event, $scripts) {
$scripts->register('template', 'isp:app/bundle/template.js', '~settings');
}
]
Теперь я попытайтесь получить то, что работает в е вид
$view->script('settings', 'isp:app/bundle/settings.js', [ 'vue', 'uikit-form-password', 'editor' ])
;
<component :is="template"></component>
Но тест-строка не отображается
Привет, crabbly, к сожалению, это все еще не работает. И другие расширения не используют здесь ['components'], как вы можете видеть в https://github.com/pagekit/extension-blog/blob/master/app/components/post-meta.vue#L36. Этот компонент включен в имя 'post-meta'. – MyFault
Здесь вы указываете свой компонент, в вашем случае вы пытались использовать '', что означает, что имя компонента должно быть 'component'. Вы можете изменить его на что-то еще, например «my-component», а затем использовать его так: my-component> ', но вам нужно объявить его так: window.Settings.components ['my-component'] = module.exports; ' –
crabbly