是否可以在VueJ上将道具作为函数传递?
<template> <line-chart class="card-content" :chartData="lineData2('Temp')" :options="options" :width="800"> </line-chart> </template>
chartData道具可以作为方法使用吗?有没有办法在道具上传递方法?干杯,
chartData
polkgigr1#
这取决于你要做什么。如果你想传递一个实际的函数而不是一个函数的结果,你可以做:
<line-chart class="card-content" :chartData="() => lineData2('Temp')" :options="options" :width="800"></line-chart>
它将传递lineData2函数本身,但是,它仍将在父作用域中执行,而不是在组件作用域中执行,因此它将无法访问组件this上下文。下面是一个JSF示例:https://jsfiddle.net/rz8c1v4L/如果你只是想传递函数的结果,那么你所做的是好的。
lineData2
this
qc6wkl3g2#
是的,你可以。只要你的函数返回一个值。一切都应该工作。
ccrfmcuu3#
是的,你可以!你可以通过提到你的道具的类型来实现,因为它在Vue的文档中写得很清楚。
Vue.component('example', { props: { propA: { type: function } } })
同时 checkout 此link
3条答案
按热度按时间polkgigr1#
这取决于你要做什么。如果你想传递一个实际的函数而不是一个函数的结果,你可以做:
它将传递
lineData2
函数本身,但是,它仍将在父作用域中执行,而不是在组件作用域中执行,因此它将无法访问组件this
上下文。下面是一个JSF示例:https://jsfiddle.net/rz8c1v4L/
如果你只是想传递函数的结果,那么你所做的是好的。
qc6wkl3g2#
是的,你可以。只要你的函数返回一个值。一切都应该工作。
ccrfmcuu3#
是的,你可以!你可以通过提到你的道具的类型来实现,因为它在Vue的文档中写得很清楚。
同时 checkout 此link