运行 加载组件方法 vue.js
Run component method on load vue.js
嘿,我是 Vue.js 的新手,我正在尝试完成看似简单的事情,但我遇到了麻烦。本质上,我需要它,所以每次将组件加载到 DOM 时,都会触发其中一个方法。这是我当前的代码,我尝试使用 v-on:load 但它似乎不起作用。
Vue.component('graph', {
props:['graphId','graphData'],
template: '<canvas v-on:load="{{populateGraph()}}"></canvas>',
methods: {
initGraph: function () {
var settlementBalanceBarChart = new Chart(this.graphId, {
type: "bar",
data: settlementBalanceBarData,
options: settlementBalanceBarOptions
});
},
//this is the function I would like to run
populateGraph: function () {
alert('{{graphId}}');
}
}
});
var vm = new Vue({
el: "#app",
mounted: function(){
}
});
如果我使用 v-on:click 事件,同样的代码可以正常工作
您可以使用 instance lifecycle hooks。例如:
Vue.component('graph', {
props:['graphId','graphData'],
template: '<canvas></canvas>',
created: function () {
alert('{{graphId}}');
},
methods: {}
});
您必须调用以 "this" 为前缀的函数,如下所示:
var data =
{
cashiers: []
}
var vm = new Vue({
el: '#app',
data: data,
created: function () {
this.getCashiers();
},
methods: {
getCashiers: function () {
vm.cashiers = [];
}
}
});
嘿,我是 Vue.js 的新手,我正在尝试完成看似简单的事情,但我遇到了麻烦。本质上,我需要它,所以每次将组件加载到 DOM 时,都会触发其中一个方法。这是我当前的代码,我尝试使用 v-on:load 但它似乎不起作用。
Vue.component('graph', {
props:['graphId','graphData'],
template: '<canvas v-on:load="{{populateGraph()}}"></canvas>',
methods: {
initGraph: function () {
var settlementBalanceBarChart = new Chart(this.graphId, {
type: "bar",
data: settlementBalanceBarData,
options: settlementBalanceBarOptions
});
},
//this is the function I would like to run
populateGraph: function () {
alert('{{graphId}}');
}
}
});
var vm = new Vue({
el: "#app",
mounted: function(){
}
});
如果我使用 v-on:click 事件,同样的代码可以正常工作
您可以使用 instance lifecycle hooks。例如:
Vue.component('graph', {
props:['graphId','graphData'],
template: '<canvas></canvas>',
created: function () {
alert('{{graphId}}');
},
methods: {}
});
您必须调用以 "this" 为前缀的函数,如下所示:
var data =
{
cashiers: []
}
var vm = new Vue({
el: '#app',
data: data,
created: function () {
this.getCashiers();
},
methods: {
getCashiers: function () {
vm.cashiers = [];
}
}
});