我认为这不一定是基于Vue的问题,但是我遇到了一些麻烦。
我想在画布上写一个Vue变量。如果删除vue,则我的初始代码可以正常工作,但是,如果添加vue,则画布实际上不会启动。
这是我的代码
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.fillStyle = "black";
ctx.font="20px Georgia";
ctx.fillText("Hello World!",10,50);
var v = new Vue({
el: '#app',
data: {
'exampleContent': 'This is TEXT'
},
watch: {
exampleContent: function(val, oldVal) {
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.fillStyle = "black";
ctx.font="20px Georgia";
ctx.fillText(this.exampleContent,10,50);
}
}
});
如果我注释掉/* var v = new Vue({ ...
初始位有效。如果我exampleContent
在监视程序中记录的值,它也将起作用。但是关于画布的某些信息不起作用。
演示使用:http : //codepen.io/EightArmsHQ/pen/EgGbgR?editors=1010
这是适用于Vuejs 2的简单方法:
使用参考属性将画布添加到您的模板中:
ref="myCanvas"
然后,您可以使用来访问组件内部的任何位置
var canvas = this。$ refs.myCanvas