Как отметил Дэн в комментариях, это невозможно . Итак, я подошел к концепции паттерна Стратегии, предложенной Evandro. Я импортирую внешние файлы на основе имени маршрута при монтировании компонента.
<template>
<div>
<div v-for="foo in method1()">{{foo.bar}}</div>
</div>
</template>
<script>
export default {
data: function() {
m: {},
// ..
},
methods: {
method1: function(params) {
return m.method1(params)
},
method2: async function(params){
return await m.method2(params, this.another_param);
},
// ...
},
mounted: function() {
switch(this.$route.name) {
case "route.name":
this.m = require('./external-script.js');
break;
case "another.route.name":
this.m = require('./another-external-script.js');
break;
}
}
}
</script>
Обратите внимание, что в зависимости от того, как монтируется ваш компонент, сценарии на основе маршрута в mounted()
могут работать не всегда.