import DomainAction from './components/domainaction/DomainAction.vue'
...
{ path: '/domainaction' , component: DomainAction },
...
...
<router-link to = "/domainaction" tag = "li" class = "list-group-item "class-active = "active" exact > Domain Action</router-link>
...
...
itemAction(action,data){
if (action=='Suspend'){
this.$router.push('/domainaction')
}
}
...
<template>
.......
</template>
<script>
export default {
props:['data'],
data(){
return{
.........
</script>
Я хочу передать реквизиты данных из функции itemAction. Как мне этого добиться? Я новичок в vue js. Извините, если мой вопрос не очень полный.
@VladislavLadicky Из функции itemAction(action,data) я хочу передать этот data, который является объектом json, компоненту действия домена



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


props предназначены для передачи переменных из компонента родитель в компоненты ребенок,
поэтому его необычно использовать, когда вы хотите обмениваться данными между страницами.
пример правильного использования prop:
parent.vue
<child-component :data = "data">
<child-component :data = "anotherData">
поэтому, если вы хотите разделять переменные между страницами, используйте вместо этого vuex (шаблон хранилища).
аналогичный вопрос:
https://stackoverflow.com/a/40955110/10440108
Обратите внимание, что Сосмии прав насчет использования Vuex для обмена данными между компонентами.
Но если вы изучаете передачу данных сомы в качестве параметров с использованием маршрутов, вам нужно немного изменить способ определения маршрутов компонентов. Используя параметры маршрутизатора, вы сможете передавать реквизиты, затем вы можете нажать маршрут и добавить параметры. См. Пример ниже.
И связанный с этим вопрос: Передача реквизита с помощью программной навигации Vue.js
const DomainActionA = {
props: ['dataProp'],
template: '<div>A data: {{dataProp}}</div>'
}
const DomainActionB = {
props: ['dataProp'],
template: '<div>B data: {{dataProp}}</div>'
}
const routes = [
{
path: '/DomainActionA/:dataProp',
name: 'domainA',
component: DomainActionA,
props: true },
{
path: '/DomainActionB/:dataProp',
name: 'domainB',
component: DomainActionB,
props: true
}
]
const router = new VueRouter({
routes
})
const app = new Vue({
router,
methods: {
goToA() {
this.$router.push({name: 'domainA', params: {dataProp: "blah"}})
},
goToB() {
this.$router.push({name: 'domainB', params: {dataProp: "bleh"}})
}
}
}).$mount('#app')<script src = "https://unpkg.com/vue/dist/vue.js"></script>
<script src = "https://unpkg.com/vue-router/dist/vue-router.js"></script>
<div id = "app">
<h1>Hello Router!</h1>
<div>
<button @click = "goToA()">Go A with params: { data: "blah" }</button>
<button @click = "goToB()">Go B with params: { data: "bleh" }</button>
</div>
<div>
<h2>router view</h2>
<router-view></router-view>
</div>
</div>Что ж, если вам просто нужно передать свойство (значение) компоненту, вам просто нужно использовать передачу данных через реквизиты маршрутизатора: режим https://router.vuejs.org/guide/essentials/passing-props.html#function-.
И получайте, используя this.$router внутри компонента.
В качестве альтернативы вы можете использовать Vuex для передачи данных.
https://vuex.vuejs.org/
Чтобы вы могли установить связь между компонентами за пределами этой формы, о которой было сообщено, оба компонента должны быть родительскими и дочерними, то есть 1 вызывает другой внутри него, поэтому да, вы можете передавать значения, в противном случае он должен использоваться, или путь к данным через route или через vuex, который является менеджером статуса vue.
Существует также следующая возможность, как указано в этом вопросе.
Передача props компонентам Vue.js, созданным Vue-router
Что находится в свойстве данных? Итак, какие данные вам нужно передать компоненту?