Добрый день. В данный момент получаю данные от сервера после загрузки страницы таким образом: Код (Javascript): export default { data: function(){ return { array: [] } }, methods:{ getData: function (){ axios.get("index.php?r=vue-post/test").then((response) => { this.array = response.data; console.log(this.array); }); } }, mounted(){ this.getData(); } } Хотел научится получать данные до загрузки страницы, нашел такую инструкцию: https://router.vuejs.org/guide/advanced/data-fetching.html#fetching-after-navigation там есть такие строки Код (Javascript): beforeRouteEnter (to, from, next) { getPost(to.params.id, (err, post) => { next(vm => vm.setData(err, post)) }) } Решил прикрутить по этой инструкции: https://medium.com/@allenhwkim/resolving-before-route-vuejs-d319b27576c3 но не получилось Код (Javascript): export default { data: function(){ return { array: [], posts: [] } }, beforeRouteEnter (to, from, next) { axios.get('index.php?r=vue-post/test') .then(response => { next(vm => (vm.posts = response.data) ) }) }, methods:{ getData: function (){ axios.get("index.php?r=vue-post/test").then((response) => { this.array = response.data; console.log(this.array); }); } }, mounted(){ this.getData(); console.log(this.posts); } } подскажите что не так делаю?
Эта штука работает в роуте, в принципе логично: Код (Javascript): let routes = [ { path: '/', component: LandingPage, name: 'landing', beforeEnter: (to, from, next) => { axios.get("index.php?r=vue-post/test") .then((response) => { console.log(response); next(vm => (vm.posts = response.data) ) }); }, } ]; как теперь получить доступ к vm.posts на загруженной странице?
Я конечно не эксперт по Vue, но яб не стал пихать логику в роут в принципе. Если нужны какие-то данные до создания страницы - помести метод для их получения в хук mounted, например Я бы так сделал Иначе мешанина получается
@Roman __construct это из офф документации https://router.vuejs.org/ru/guide/a...ards.html#гnобаnьные-хуки-завершения-перехода
В понимании ДО загрузки страницы это значит что данные уже есть на клиенте. А вот извлечь данные ДО рендеринга страницы, соответсвенно ДО монтирования приложения перед его рендеринга то что нужно, а значит нужно что? Читать документацию с начала а не середины, поскольку без знания цикла жизни приложения на vue так и будешь долбить его методом не научного тыка. Смотрим и видим есть beforeCreate вот тут то и можно инициализировать извлечение данных то рендеринга страницы. https://vuejs.org/v2/guide/instance.html