#ecmascript-6 #vue.js
#ecmascript-6 #vue.js
Вопрос:
Я получаю данные в функции, и этой функции необходимо загрузить новую страницу. Я делал это с помощью Jquery, используя метод .load(), Но мой метод vue выдает ошибку, в которой говорится, что не удается найти элемент на другой странице.Я считаю, что это мог бы быть лучший подход, но я не знаю, как я могу передавать данные через компонент vue
static foo(a,b){
$('#maindiv').load("/newPage");
new Vue({
el: '#newPageElem',
data: {
vueVar1:a
vueVar2:b
},
});
}
Как я могу это сделать? Я считаю, что использование Jquery — не лучший способ добиться этого, но я не знаю, как изменить маршруты с помощью vue и передать параметр между ними.
Спасибо.
Комментарии:
1. Возможно, вы захотите взглянуть на Vue-router , который позволяет вам сопоставлять компоненты с маршрутами.
Ответ №1:
Вы можете взглянуть на vue-router
здесь: http://router.vuejs.org/en/essentials/getting-started.html — это позволяет обрабатывать все маршруты на стороне клиента.
Для выполнения http-вызовов для получения данных с сервера вы можете использовать vue-resource
(https://github.com/vuejs/vue-resource )
Лучше избегать смешивания jQuery с Vue, поскольку Vue отвечает за визуализацию DOM. Если вы внесете какие-либо изменения в DOM с помощью jQuery, они будут перезаписаны Vue в следующем обновлении DOM. Таким образом, вы в конечном итоге потратите много времени на отладку.
Кроме того, вы не можете создать экземпляр приложения Vue внутри функции, как показано в вашем примере кода, если вы не вызываете функцию при загрузке страницы. В идеале, первые несколько строк скрипта должны запускать приложение Vue.
Комментарии:
1. Итак, как бы я вызвал метод при загрузке страницы? Должен ли я создать тег script на HTML-странице?
2. Да, вы можете использовать тег script в нижней части html-страницы, для
new Vue({..})
которого будет запущено приложение Vue и отображен DOM. Или вы можете проверитьvue-cli
, что может немного сбить с толку, если вы только начинаете.3. @Mani Здорово, что вы указываете на проблемы примера кода, помимо ответа на вопрос, это полезно для нас, новичков в vue. Большое вам спасибо!