У меня есть отдельный файловый компонент .vue, в котором слишком много строк, поэтому я пытаюсь разделить его на файлы .js.Я могу добиться этого с помощью этого потока .
Однако я все еще застрял при попытке использовать переменную из разных файлов.
Итак, это то, что старый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
?
Спасибо!