#javascript #vue.js #runtime
#javascript #vue.js #время выполнения
Вопрос:
Возможно ли запустить некоторый внешний JS-код во время выполнения в Vue?
Например, у меня есть некоторая логика, которая может быть изменена локальным администратором во время выполнения без необходимости перезагрузки всего приложения, которое хранится в базе данных в виде фрагмента JS-кода и доступно через серверную часть через вызов axios. Так можно ли включать такие скрипты без их предварительной компиляции? Для использования следующим образом:
let params = {...}; //some input props for my stored script
let script = restService.getScript(); //get script code from backend via axios
let result = scriptService.executeScript( script, params ); //execute script with given params
У меня был аналогичный подход с приложением Java, которое могло бы выполнять сохраненный скрипт Groovy во время выполнения, хотелось бы реализовать что-то подобное в моем приложении Vue.
Я довольно новичок в разработке JS-интерфейса, поэтому может быть что-то очевидное, чего мне не хватает.
Ответ №1:
В вашем приложении vue main.js вы можете определить свой экземпляр vue следующим образом:
window.app = new Vue({
store,
render: h => h(App)
});
app.$mount('#app');
Из внешнего js вы можете получить доступ к своему экземпляру Vue из app
object.
Если вы используете vuex, вы можете вызывать такие действия, как:
app.$store.dispatch('ACTION_NAME', 'Payload');