• Как задать условие PHP, выводить блок div при нахождении в определённой рубрике или в её записях?

    sslion
    @sslion
    Так в какой переменной у тебя находится slug/id текущей категории? Из твоих кусков вообще не понятно что происходит
    Ответ написан
    Комментировать
  • Как лучше всего организовать связь данных дочерних компонентов и родительского?

    @MikUrrey
    В родительском компоненте, дочерние компонент отдельных данных не имеют, данные, как часть родительсикх данных, например, какого-то поля booksList.

    Скорее в компоненте, родительском для каталога книг, а глубже спускать в виде пропсов.
    И как это должно выглядить в коде, чтобы данные оставались связанными?

    <template>
      <lib-category v-model="booksList"></lib-category>
    </template>
    <script>
    import libCategory from "./libCategory.vue"
    default export {
      //...
      components: {libCategory},
      data() {
        return {
          booksList: [],
        }
      }
      //...
    }
    </script>


    libCategory.vue
    <template>
      <div v-for="(category, i) in booksListInner" :key="'i' + i">
         <!-- тут какое-то оформление категории -->
         ...
         <!-- а тут перечисляем книги, в нее входящие -->
         <lib-book v-for="(book, k) in category.children" :key="'k' + k" v-model="book"></lib-book>
      </div>
    </template>
    <script>
    import libBook from "./libBook.vue"
    default export {
      //...
      props: ['value'],
      components: {libBook},
      data() {
        return {
          booksListInner: [],
        }
      },
      watch: {
        value: {
          handler (value) { //связанность снаружи внутрь
            this.booksListInner = value
          },
          immediate: true,
          deep: true, //необходимо для объекта с вложенностью
        },
        booksListInner: {
          handler (booksListInner) { //связанность изнутри наружу
            this.$emit("input", booksListInner)
          },
          deep: true, //необходимо для объекта с вложенностью
        }
      }
    }
    </script>

    libBook.vue аналогично.
    Не знаю всех особенностей вашего списка, исхожу из минимального понимания. В зависимости от структуры данных могут быть нюансы в реактивности при добавлении новых элементов.
    Ответ написан
    Комментировать