我想使用Vue Loader的模块化样式和文件格式(即,我在每个.vue文件中都有一个模板部分,脚本部分和样式部分)。
我不知道怎么做(或者是否可以做)是在一个html文件中使用我的自定义模板。
例如,在App.vue文件中,我可以使用以下代码:
<template>
<div id="app">
<message>Hello there</message>
</div>
</template>这将在主页上显示一个自定义消息组件。
我想要做的是在html文件中使用我的自定义组件。例如,在index.html文件中使用以下代码:
<div id="app">
<message>Hello there</message>
</div>你知道我该怎么做吗?谢谢。
注意:我是Vue Loader的新手,也是Vue的新手(所以如果这个问题的答案是显而易见的,我提前道歉)。
发布于 2017-04-01 02:26:48
有许多方法可以编译单个文件组件,然后在网页中使用该组件。
使用vue-cli
Vue发布了一个名为vue-cli的命令行界面工具,它可以初始化项目并以零配置构建组件。构建可在页面中使用的组件的一种选择是使用vue build。
vue build MyComponent.vue --prod --lib MyComponent这将编译一个公开MyComponent的脚本。如果将脚本包含在页面中,然后将其全局添加,
Vue.component(MyComponent)该组件将在您的任何Vues中可用。
制作一个插件
这是一个制作插件的非常基本的框架示例。
myPluginDefinition.js
window.MyPlugin= {};
MyPlugin.install = function (Vue) {
Vue.component('my-component', require('./my-component.vue'));
}webpack.config.js
module.exports = {
entry: "./myPluginDefinition.js",
output: {
path: __dirname+'/dist',
filename: "MyPlugin.js"
},
module: {
loaders: [
{
test: /\.vue$/,
loader: 'vue-loader',
}
]
}
};这将构建一个名为MyPlugin.js的文件,该文件将包含您在install函数中包含的每个单个文件组件。在页面上包含该脚本,然后调用
Vue.use(MyPlugin)您将拥有所有的组件。
使用自定义的webpack配置
有许多方法可以配置webpack来构建您的单文件组件。您可以将它们全部构建到一个文件中,也可以单独构建它们。我建议如果你想使用这些选项中的一个,你可以问一个单独的问题。
发布于 2017-03-30 03:49:19
实际上,您可以通过以下方式轻松完成此操作:
注册您的组件:
Vue.component('message', {
template: '<div>A custom component!</div>'
});然后在render Vue 实例中注释函数,如下所示:
new Vue({
el: '#app',
// render: h => h(App)
})之后,您将能够呈现消息标记,如下所示:
<div id="app">
<message></message>
</div>编辑:如果您不想使用这种方式,可以在您的视图实例中定义它:
new Vue({
el: '#app',
// render: h => h(App)
components: {
message: {
template: `
<h1>Hello World</h1>
`
}
}
})发布于 2017-11-23 05:53:46
导入所需的组件定义对象并将其传递给options.components
<template>
<some-component></some-component>
</template>
<style>...</style>
<script>
import SomeComponent from 'path/to/some-component.vue';
export default {
components: {
// ES2015 shorthand for SomeComponent: SomeComponent
SomeComponent
}
}
</script>它利用了local component registration
default export和SomeComponent都是元件定义对象。
https://stackoverflow.com/questions/43098233
复制相似问题