首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在HTML文件中访问Vue-Loader组件

如何在HTML文件中访问Vue-Loader组件
EN

Stack Overflow用户
提问于 2017-03-29 23:44:48
回答 3查看 2K关注 0票数 3

我想使用Vue Loader的模块化样式和文件格式(即,我在每个.vue文件中都有一个模板部分,脚本部分和样式部分)。

我不知道怎么做(或者是否可以做)是在一个html文件中使用我的自定义模板。

例如,在App.vue文件中,我可以使用以下代码:

代码语言:javascript
复制
<template>
  <div id="app">
    <message>Hello there</message>
  </div>
</template>

这将在主页上显示一个自定义消息组件。

我想要做的是在html文件中使用我的自定义组件。例如,在index.html文件中使用以下代码:

代码语言:javascript
复制
  <div id="app">
    <message>Hello there</message>
  </div>

你知道我该怎么做吗?谢谢。

注意:我是Vue Loader的新手,也是Vue的新手(所以如果这个问题的答案是显而易见的,我提前道歉)。

EN

回答 3

Stack Overflow用户

发布于 2017-04-01 02:26:48

有许多方法可以编译单个文件组件,然后在网页中使用该组件。

使用vue-cli

Vue发布了一个名为vue-cli的命令行界面工具,它可以初始化项目并以零配置构建组件。构建可在页面中使用的组件的一种选择是使用vue build

代码语言:javascript
复制
vue build MyComponent.vue --prod --lib MyComponent

这将编译一个公开MyComponent的脚本。如果将脚本包含在页面中,然后将其全局添加,

代码语言:javascript
复制
Vue.component(MyComponent)

该组件将在您的任何Vues中可用。

制作一个插件

这是一个制作插件的非常基本的框架示例。

myPluginDefinition.js

代码语言:javascript
复制
window.MyPlugin= {};

MyPlugin.install = function (Vue) {
    Vue.component('my-component', require('./my-component.vue'));
}

webpack.config.js

代码语言:javascript
复制
module.exports = {
    entry: "./myPluginDefinition.js",
    output: {
        path: __dirname+'/dist',
        filename: "MyPlugin.js"
    },
    module: {
        loaders: [
        {
            test: /\.vue$/,
            loader: 'vue-loader',
        }
        ]
    }
};

这将构建一个名为MyPlugin.js的文件,该文件将包含您在install函数中包含的每个单个文件组件。在页面上包含该脚本,然后调用

代码语言:javascript
复制
Vue.use(MyPlugin)

您将拥有所有的组件。

使用自定义的webpack配置

有许多方法可以配置webpack来构建您的单文件组件。您可以将它们全部构建到一个文件中,也可以单独构建它们。我建议如果你想使用这些选项中的一个,你可以问一个单独的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-03-30 03:49:19

实际上,您可以通过以下方式轻松完成此操作:

注册您的组件:

代码语言:javascript
复制
Vue.component('message', {
    template: '<div>A custom component!</div>'
});

然后在render Vue 实例中注释函数,如下所示:

代码语言:javascript
复制
new Vue({
  el: '#app',
  // render: h => h(App)
})

之后,您将能够呈现消息标记,如下所示:

代码语言:javascript
复制
<div id="app">
      <message></message>
</div>

编辑:如果您不想使用这种方式,可以在您的视图实例中定义它:

代码语言:javascript
复制
new Vue({
  el: '#app',
  // render: h => h(App)
  components: {
    message: {
     template: `
    <h1>Hello World</h1>
        `
    }
  }
})
票数 0
EN

Stack Overflow用户

发布于 2017-11-23 05:53:46

导入所需的组件定义对象并将其传递给options.components

代码语言:javascript
复制
<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都是元件定义对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43098233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档