Vue.js 道具中的Vuejs参数

Vue.js 道具中的Vuejs参数,vue.js,vuejs2,chart.js,vue-component,Vue.js,Vuejs2,Chart.js,Vue Component,可以将道具作为VueJs上的函数传递吗 <template> <line-chart class="card-content" :chartData="lineData2('Temp')" :options="options" :width="800"> </line-chart> </template> chartData道具可用作方法?有没有办法在道具上传递方法 干杯,是的,你可以。

可以将道具作为VueJs上的函数传递吗

<template>
    <line-chart 
    class="card-content" 
    :chartData="lineData2('Temp')" 
    :options="options" 
    :width="800">
    </line-chart>
</template>

chartData
道具可用作方法?有没有办法在道具上传递方法


干杯,

是的,你可以。只要函数返回一个值。一切都应该正常。

是的,你可以。只要函数返回一个值。一切都应该正常。

这取决于你想做什么。如果要传递实际函数而不是函数的结果,可以执行以下操作:

<line-chart class="card-content" :chartData="() => lineData2('Temp')" :options="options" :width="800"></line-chart>

它将传递
lineData2
函数本身,但是,它仍将在父作用域而不是组件作用域中执行,因此它将无法访问组件
上下文

下面是一个JSFIDLE:


如果您只想传递函数的结果,那么您正在做什么就可以了。

这取决于您正在尝试做什么。如果要传递实际函数而不是函数的结果,可以执行以下操作:

<line-chart class="card-content" :chartData="() => lineData2('Temp')" :options="options" :width="800"></line-chart>

它将传递
lineData2
函数本身,但是,它仍将在父作用域而不是组件作用域中执行,因此它将无法访问组件
上下文

下面是一个JSFIDLE:


如果您只想传递函数的结果,那么您所做的就可以了。

是的,您可以!您可以通过提及道具的类型来实现这一点,正如Vue文档中清楚地写的那样。例如

Vue.component('example', {
  props: {
    propA: {
      type: function
    }
  }
})

还可以签出这个

是的,你可以!您可以通过提及道具的类型来实现这一点,正如Vue文档中清楚地写的那样。例如

Vue.component('example', {
  props: {
    propA: {
      type: function
    }
  }
})

同时签出此项

您是否尝试过此项?我想应该有用。你试过这个吗?我认为应该行得通。