<tr-in-list v-for="item in items"
v-bind:title="item.title"
></tr-in-list>
</div>
</template>
<script>
import TrInList from './TrInList.vue';
component.Vue({
data: function(){
data: ... массив json данных {}
},
methods: {
onTrInList (){ data = this.data } // <== может это мне поможет?
}
components: {
TrInList,
}
});
</script>
файл TrInList.vue
<template>
<div>{{ title }}</div>
</template>
<script>
component.Vue({
props: [ title ], // items в который передается data
data: function(){
data: {},
items: {},
},
});
</script>
данные передаю в первый компонент table-list.
а как передать данные из table-list (переменная data) в tr-in-list (переменная items)
?
нахера так код кидать? не можешь по человечески?
откуда в шаблоне вообще items взялся? у тебя нет такой переменной
так же само как ты передаешь в table-list. Если тебе title доступен в table-list
сейчас вообще ошибка названия Unknown custom element: <table-list> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
в опциях компонента где ты хочешь ипользовать данный компонент обяви этот компонента compoents: { TableList }
передаешь и не получаешь title в компоненте TrInList ?
да сделал компонент tr-in-list у него template <div>!!!!!!!!</div> - но не отображается
props: ['title'] // title возьми в скобки
файл index.js import TableList from './TableList.vue'; export default { ..... components: { 'table-list': TableList, } } выдает ошибку: Unknown custom element: <table-list> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
максимум в файл App.vue.
Есть файл TableList.vue <script> import TrInList from './TrInList.vue'; export default { name: 'tr-in-list', .... components: { 'tr-in-list': TrInList, } } выдает ошибку: Unknown custom element: <table-list> - did you register the component correctly? For recursive components, make sure to provide the "name" option. </script>
Почему не в этот ? Он вызывается при запуске так движок собрали
компонент TableList обяъвляешь в index.js?
Указывай компоненты там, где они будут использоваться. Если ты хочешь глобально регистрировать компоненты без необходимости импортить их отдельно, то гугли в сторону "глобальная регистрация компонентов Vue". И ещё, можно просто components: { TableList }, Вью сам поймёт, что <table-list> в шаблоне это именно оно. (читаем доку, угу)
если нужно глобально в index.js тогда https://ru.vuejs.org/v2/guide/components-registration.html#%D0%93%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F
но это не есть хорошо (при определённых условиях)..
а что плохого в глобальной регистрации? Или при каких условиях плохо ?
вкратце, как задать компоненту имя module.exports = { name: 'my-component', ... } import MyComponent from './MyComponent'; components: { 'my-component': MyComponent, } Правильно?
тришейкинг при большом объёме проекта и ± достаточном кол-ве компонентов в таком случае идёт нахер.
А как же LazyLoading
Не везде он есть, к сожалению.
Не во всех версиях? Или что ты имеешь ввиду?
возможно! Я сейчас задался вопросом. например есть UI фреймворк. Обычно они как плагины устанавливаются в проект и далее их компоненты доступны глобально. Они тоже объявляются глобально ? так же как мы это делаем в проектах ?
не во всех проектах. Скажем так: не везде его готовят правильно. Иногда встречаются бандлы под 10-30Мб, и это обычный spa с 5-10ю страницами..
import * as MySuperPupperComponent from './MyComponent'; components: { MySuperPupperComponent }
У Vuetify'я, вроде бы, с этим сейчас всё нормально, туда тришейкинг со второй версии завезли, кажется. У Quasar'а, по-моему, тоже. У остальных - надо глянуть..
Обсуждают сегодня