我正在学习vue + laravel。我想将值从一个组件传递到其他组件?我已经使用vue路由器进行路由。
这是第一个和第二个组件的代码。 SelectPerson.vue
<template>
......
<div>
<input type="number" class="form-control" name="numberOfPersons" placeholder="Enter number of persons here" **v-model="inputPersons"**>
<br>
**<SelectTimeSlot v-bind:numberOfPersons="inputPersons"></SelectTimeSlot>**
</div>
<div>
<button class="btn btn-default float-right mt-2" v-on:click="selectTimeSlots">Next</button>
</div>
......
</template>
<script>
import SelectTimeSlot from './SelectTimeSlot.vue'
export default{
props:['numberOfPersons'],
data(){
return{
**inputPersons:0**
}
},
methods:{
selectTimeSlots(){
this.$router.push({name:'SelectTimeSlot'});
}
}
}
</script>
第二部分 SelectTimeSlot.vue
<template>
<h5>Welcome, You have selected **{{numberOfPersons}}** persons.</h5>
</template>
有人可以帮我吗?
答案 0 :(得分:11)
要将数据从一个组件传递到其他组件,您需要使用props
:
第一个组件:
<second-component-name :selectedOption="selectedOption"></second-component-name>
<script>
export default {
components: {
'second-component-name': require('./secondComponent.vue'),
},
data() {
return {
selectedOption: ''
}
}
}
</script>
第二个组件:
<template>
<div>
{{ selectedOption }}
</div>
</template>
<script>
export default {
props: ['selectedOption']
}
</script>
请访问this link。
希望这对你有所帮助!
答案 1 :(得分:0)
说我有一个带有此HTML的页面。
<div class="select-all">
<input type="checkbox" name="all_select" id="all_select">
<label @click="checkchecker" for="all_select"></label>
</div>
在我的方法中调用了功能checkchecker
checkchecker() {
this.checker = !this.checker
}
这样会在该页面上显示或隐藏我的div
<div v-show="checker === true" class="select-all-holder">
<button>Select All</button>
</div>
现在,如果我还想切换孩子内部的另一个div 该页面上的组件,我将传递这样的值。
<div class="content-section clearfix">
<single-product :checkers="checker"></single-product> //This is calling my child component
</div>
现在在我的子组件中,我将有一个这样声明的道具
checkers: {
type: String,
default: false,
},
这就是我将div写入子组件的方式
<div v-show="checkers === true" class="select-holder clearfix">
<input type="checkbox" class="unchecked" name="single_select" id="1">
</div>