У меня есть файл app.vue
<template>
<h1>Hello App!</h1>
<p>
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
</p>
<router-view></router-view>
</template>
<script>
import VueRouter from "vue-router";
export default {
name: 'app'
}
</script>
И запускаемый файл main.js
import Vue from 'vue'
import App from './App.vue'
import VueRouter from "vue-router";
Vue.use(VueRouter);
const Foo = {template: '<div>foo</div>'}
const Bar = {template: '<div>bar</div>'}
const routes = [
{path: '/foo', component: Foo},
{path: '/bar', component: Bar}
]
const router = new VueRouter({
routes // сокращение от `routes: routes`
})
const app = new Vue({
router,
render: h => h(App)
}).$mount('#app')
Приложение рендерится, ошибок не выводит, но ссылок router-link
нету. Не могу понять в чём дело.
Для сборки использую rollup
, не знаю имеет ли это значение.
Я во Vue.js
новичок, хочу понять как сделать проект с .vue
файлами, роутингом, и основным шаблоном.
Решилось добавлением div
<template>
<div> /* добавил */
<h1>Hello App!</h1>
<p>
<!-- используйте компонент router-link для создания ссылок -->
<!-- входной параметр `to` определяет путь для перехода -->
<!-- `<router-link>` по умолчанию преобразуется в тег `<a>` -->
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
</p>
<!-- отображение компонента, для которого совпал путь -->
<router-view/>
</div>
</template>
Но зачем этот div
нужен, не понимаю?
Решилось добавлением div
. Но зачем этот div
нужен, не понимаю?
В Vue html-шаблон любого компонента не может содержать более одного элемента на верхнем уровне. Сделано это с целью упрощения реализации инжектирования кода компонента.
Вот комментарий разработчика Vue в issue на GitHub'е, в которой запрашивается возможность иметь несколько элементов верхнего уровня в одном компоненте:
While that's something useful in its own right, currently it requires non-trivial changes to the vdom implementation to support it. This is something that falls within "obviously nice to have but not an area of focus for now". We'll revisit this when we are working on substantial improvements to the vdom in the future.
Эта возможность кажется полезной, но чтобы добавить её придётся сделать нетривиальные изменения в текущей реализации виртуального DOM. То есть очевидно было бы здорово иметь её, но это не то, на чём сейчас стоит сосредоточиться. Возможно что-то изменится в следующих релизах.
Насчёт этой части:
Я во Vue.js новичок, хочу понять как сделать проект с .vue файлами, роутингом, и основным шаблоном.
Имхо, наиболее удобный способ — создавать проект, используя vue-cli и один из готовых шаблонов, например webpack.
Не знаю, связанно ли это с webpack, но тогда ошибка наличия нескольких компонент верхнего уровня будет обнаруживаться на этапе сборки.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Почему когда вывожу первый раз consolelog();, атрибут возвращает строку, а не объект? А если установить через JS данный атрибут, то возвращает уже...
Объясните пожалуйста почему куки считают не безопасными? Я думаю что это вполне себе безопасная вещь, я просто хочу убедится в этомКуки по подсунутой...
создал сайт а не могу понять как изменить адресную строку