【发布时间】:2019-05-08 16:43:06
【问题描述】:
我需要在我的 vue.js 中访问存储在 canvas.js 中的数据。为此,我必须在我的 vue.xml 中创建画布实例。但我对此有一些疑问。
我发现similar problem 是我的,但我没有找到答案,我也尝试过 require。 我也找了一些solution用ES6,但是我没用ES6,不过我也试过了,不行。
这是我在 Vue.js 中输入的内容
import Canvas from './canvas.js';
Canvas.js
export default class Canvas{
contructor(){
this.devices = ["5", "15"];
}
我想知道为什么第一个解决方案对我没有帮助,因为我的问题非常相似。如果我用“//”评论 Vue.js 中的导入,一切正常。也许还有另一种不使用导入的解决方案,但我需要访问存储在 Canvas 中的数据。
P.s 请不要建议使用组件 bcs im 计划在 Canvas 的设备中存储另一个类实例,并且会有太多无用的组件(imho bcs im noob in vue)
UPD2:完整的 Vue.js 文件
//import Canvas from './canvas.js';
var app1 = new Vue({
el: '#vue1',
data: {
arr2: [8, 7, 6, 5]
},
methods: {
addArr1: function(num){
this.arr2.push(num)
}
}
});
canvas.js
export default class Canvas{
contructor(){
this.devices = ["5", "15"];
}
我的 index.html
<div id="vue1">
<ul v-for="ar in arr2">
<li>{{ ar }}</li>
</ul>
<button v-on:click="addArr1(15)">CLICK</button>
</div>
【问题讨论】:
-
你有什么问题?
-
您如何尝试访问
devices?因为使用当前的代码,你必须先创建一个Canvas实例。 -
抱歉没把问题说清楚,我更新了话题
-
你是如何编译你的代码的?
-
import尚未在浏览器环境中得到正式支持。转译意味着获取使用import和export的 ES6 模块(文件)并将它们转换为单个bundle.js文件。您似乎使用的是纯客户端 Vue,因此您不能像那样使用import。你可以做的是在你的 HTML 中添加一个<script>并使用const Canvas = { devices: ["5", "15"] };,现在你的 Vue 脚本应该可以使用Canvas.devices了。
标签: javascript vue.js