【发布时间】:2019-03-21 10:33:35
【问题描述】:
我有一个 .vue 单文件组件,它有太多行,所以我试图将它分成 .js 文件。我可以在thread 的帮助下实现这一目标。
但是,当我尝试使用来自不同文件的变量时,我仍然卡住了。
所以,这就是旧的foobar.vue 的样子
foobar.js
<script>
let foo; // there is one global variable (somehow I have to do this way)
export default {
data() {
return {
bar: [1, 2, 3, 4],
}
},
methods: {
baz() {
foo = 'some text';
this.bar.push(5);
},
qux() {
foo += 'lorem ipsum';
this.bar.shift(0);
},
}
}
</script>
现在,我分成两个文件,baz.js,qux.js,它们看起来像这样:
foobar.vue
<script src="@/baz.js"></script>
<script src="@/qux.js"></script>
<script>
import { baz } from '@/baz';
import { qux } from '@/qux';
let foo; // I want to manipulate this from external files
export default {
data() {
return {
bar: [0, 1, 2, 3], // I also want to manipulate this from external files
}
},
methods: {
baz,
qux,
}
}
</script>
baz.js
function baz() {
foo = 'some text'; //foo undefined
this.bar.push(5); //this.bar undefined
}
export { baz };
qux.js
function qux() {
foo += 'lorem ipsum'; // foo undefined
this.bar.shift(0); //this.bar undefined
}
export { qux };
显然,它不起作用,因为baz() 和qux() 看不到foo 和this.bar(在data() 中)。那么,我应该怎么做才能看到和操作foo 和bar?
谢谢!
【问题讨论】:
标签: javascript vue.js vuejs2 vue-component