首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 6和Vue组件

Rails 6和Vue组件
EN

Stack Overflow用户
提问于 2020-11-25 19:20:40
回答 1查看 62关注 0票数 1

我有一个应用程序在Vue中,单独工作。但是如果我将它添加到Rails中,我不知道如何创建组件(我有很多组件,使用v-for)。在我的独立代码中是

代码语言:javascript
复制
import { createApp } from 'vue'
import App from './App.vue'
import Bar from './components/Bar.vue';

const app = createApp(App);

app.component('light-bar', Bar);

app.mount("#light-bars");

但是我无法在Rails javascript/packs/light_bar.js中创建这样的组件。

那么,如何在Rails javascripts中创建组件呢?我的light_bar.js看起来像这样:

代码语言:javascript
复制
import Vue from 'vue'
import App from '../light-bars/app.vue'
import Bar from '../light-bars/components/Bar.vue'

document.addEventListener('DOMContentLoaded', () => {
  const app = new Vue({
    render: h => h(App),
    components: {
      'light-bar': Bar
    }
  }).$mount('#light-bars');

  console.log(app);
});

我还尝试在我的应用程序中导入和注册组件,如下所示

代码语言:javascript
复制
import Bar from './components/Bar.vue'
export default {
  name: 'App',
  data() {
    return {
      barsData: []
    };
  },
  components: {
    'light-bar': Bar
  }
...

模板看起来像这样

代码语言:javascript
复制
<template>
  <div class="container">
    <h3>Úrovně osvětlení pro různé situace</h3>
    <div class="row">
      <light-bar
        v-for="bar in barsData"
          :key="bar.id"
          :luxRange="bar.luxRange"
          :luxRangeName="bar.luxRangeName"
          :luxLevel="bar.luxLevel"
          :compensation="bar.compensation"
      ></light-bar>
    </div>
</div>
</template>

但不显示任何组件。有什么提示我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-25 19:38:19

我想通了。但这有点奇怪,我在两个地方都注册了这个组件,在packs/light-bars.js和我的应用程序中。

代码语言:javascript
复制
import Bar from './components/Bar.vue';
export default {
  name: 'App',
  data() {
    return {
      barsData: []
    };
  },
  components: {
    'light-bar': Bar
  },
...

代码语言:javascript
复制
import Vue from 'vue'
import App from '../light-bars/app.vue'
import Bar from '../light-bars/components/Bar.vue'

document.addEventListener('DOMContentLoaded', () => {
  const app = new Vue({
    render: h => h(App),
    components: {
      'light-bar': Bar
    }
  }).$mount('#light-bars');

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

https://stackoverflow.com/questions/65003665

复制
相关文章

相似问题

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