получите значение идентификатора url в другом компоненте, переданном через props — vue

#javascript #vue.js #vuejs2

Вопрос:

Я создаю один многоразовый компонент. Существует два дочерних компонента. Этот поток выглядит так, как показано ниже

 Child component 1 -> Parent Component -> Super Parent main Component
 

В дочернем компоненте я создаю URL-адрес prop, затем передаю его в родительский компонент, а затем передаю в Суперпродительский компонент, где я передаю значение, подобное приведенному ниже.

Дочерний компонент

 prop: {
    urls: {
            type: Object,
            required: true,
            default: () => ({
               saveProduct: '/entity/save',
               updateProduct: '/entity/update
            })
        }
}
 

Родительский компонент

     <ChildComponent :urls = "uris" />

    props: {
      uris: {
          type:Object,
          required:true,
          default: () => ({})
      }
   }
 

Супер Родительский компонент

 <ParentComponent :uris="urls" />

 data() {
  return {
    urls: {
          saveUri: `/products/${this.$route.params.id}/categories`,
          updateUri: `/products/${this.$route.params.id}/categories/${this.productId}`
      }
  }
 }
 

Здесь я даю фрагменты для потока не полного кода. Я хочу знать общий способ получения значения ProductID в Super parent.

Здесь я могу получить это (это.$route.params.id) значение, но как я могу получить значение productid, доступное в super parent из дочернего компонента.

Любой общий пример будет полезен для меня… Как отправить данные от одного компонента следующему из следующих компонентов?

Ответ №1:

Реквизиты предназначены для передачи данных вниз от родителя к ребенку. Для передачи данных вверх от ребенка к родителю, emit а также события от ребенка и прослушивания его в родителе.

 this.$emit('clicked', 'someValue')
 

Другим вариантом было бы использование глобального хранилища состояний, такого как Vuex.