Rails 5.1の新しいwebpacker gemとVueJSをフィーリングしようとしていますが、VueJSコンポーネントにデータを渡すためのerbビューを取得できません...RailsビューからWebpacker内のVueJSコンポーネントにデータを渡す
のは、私は、ユーザーのショーのビューを持っているとしましょう
# view/users/show.html.erb
<%= javascript_pack_tag "user-card" %>
<%= content_tag :div,
id: "user-card",
data: {
username: @user.name
} do %>
<% end %>
そして、私のjavascript:私は今では、この上でいくつかの時間を費やしてきたが、私の試みのどれも証明なかった
// app/javascript/packs/user-card.js
require("user-card")
// app/javascript/user-card/index.js
import Vue from 'vue/dist/vue.esm'
import UserCard from './components/UserCard'
document.addEventListener('DOMContentLoaded',() => {
let element = document.getElementById("user-card")
let username = element.dataset.username
console.log(username); // => "pecpec"
const app = new Vue({
el: element,
template: '<UserCard/>',
components: { UserCard },
data() {
return { username }
}
})
// app/javascript/user-card/components/UserCard.vue
<template>
<div>
<h3>Hello {{ username }}</h3>
</div>
</template>
<script>
export default {
props: ['username'],
data() {
return {
username: ""
}
}
}
</script>
成功した。
Vue.component(UserCard, {
props: ['username']
// or
data() {
return { username: username }
}
})
で部品を取り付け、 props: ['username']
...しかし、それはどちらか
アップデートを動作しませんでした:私は小道具としてコンポーネントにデータを渡して試してみた 私はprops: ['username']
がありませんでしたそれに応じて上記のコードを更新しましたが、それは違ったようには見えません。まだ運がない!