javascript - 如何将值传递给 vue 实例?

标签 javascript vue.js vuejs2 vue-component vuetify.js

我想从我的 web 组件传递一个值到 vue 实例,我想使用它 rails html.erb 文件, 这是我正在安装 vue 实例的元素:

    <div id="app" :purchaseId="1">

将其传递给 vue 实例但它似乎不起作用,vue 实例在 main.js 中声明如下:

export default new Vue({
  store,
  vuetify,
  render: h => h(App),
  data: {
    purchaseId: null
  },
  methods: {
    setJson(payload) {
      console.log("payload", payload);
      this.purchaseId = payload;
    }
  }
}).$mount("#app");

在此之后我想传递给它的子组件,谁能告诉我该怎么做

最佳答案

我看到您应该将该属性绑定(bind)到方法而不是数据属性,并将来自 rails 的数据作为参数传递: 第一种解决方案:

  <div id="app" :purchaseId="setJson(1)">

  <div id="app" :purchaseId="setJson(<%= purchaseId %>)">

export default new Vue({
  store,
  vuetify,
  render: h => h(App),
  data: {
    purchaseId: null
  },
  methods: {
    setJson(payload) {
      console.log("payload", payload);
      this.purchaseId = payload;
    }
  }
}).$mount("#app");

第二种解决方案:

尝试使用纯js通过$refs和getAttribute方法获取该值:

<div id="app" ref="app" purchaseId="<%= purchaseId %>">
export default new Vue({
  store,
  vuetify,
  render: h => h(App),
  data: {
    purchaseId: null
  },
  methods: {
    setJson(payload) {
      console.log("payload", payload);
      this.purchaseId = payload;
    }
  },
 mounted(){
    let payload=this.$refs.app.getAttribute('purchaseId');
    this.purchaseId = payload;

  }
}).$mount("#app");

关于javascript - 如何将值传递给 vue 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63424852/

相关文章:

javascript - 通过 AJAX 加载 Google Maps API,控制台错误

javascript - 如何在JS ES6新Map(键,值)对中将值设置为对象

vue.js - 是否可以在 Vue 中使 Prop 有条件,例如prop2 取决于 prop1 的值?

vue.js - [Vue警告] : Unknown custom element: <RouterView> (with plugin:vue/recommended eslint rules)

css - 使位置 : fixed behavior like sticky (for Vue2)

javascript - 如何在 NPM 上创建和发布 Vuejs 组件

vue.js - 为什么 Prop 更改不会更改数据?

javascript - 禁用 jQuery 中的按钮,直到所有必填字段都有值(特别是选择)

javascript - 如何在codeigniter中将2个或更多数据传递给ajax

javascript - TinyMCE 自动调整大小插件不起作用