三个页面a和b和c,a页面几个输入框输入姓名生日年龄然后一个按钮,点击按钮跳转到b页面,把a页面输入框值传到b页面有几种方式,然后数据存在本地,b页面也有一个按钮,点击跳转到c页面,c页面从本地获取这些数据 使用vue2 使用子父传值
时间: 2024-04-11 12:27:52 浏览: 46
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
在Vue 2中,你可以使用子组件和父组件之间的props和事件来实现在A、B、C页面之间传递数据的方式。下面是具体的步骤:
1. 在A页面的输入框中,使用`v-model`绑定数据,并在按钮点击事件中通过自定义事件将输入框的值传递给父组件。
```html
<!-- A页面 -->
<template>
<div>
<input type="text" v-model="name" placeholder="姓名">
<input type="text" v-model="birthday" placeholder="生日">
<input type="text" v-model="age" placeholder="年龄">
<button @click="handleClick">跳转到B页面</button>
</div>
</template>
<script>
export default {
data() {
return {
name: '',
birthday: '',
age: ''
};
},
methods: {
handleClick() {
// 触发自定义事件,并传递输入框的值给父组件
this.$emit('pass-data', { name: this.name, birthday: this.birthday, age: this.age });
// 跳转到B页面
this.$router.push({ name: 'B' });
}
}
};
</script>
```
2. 在B页面中,使用props接收从A页面传递过来的值,并在按钮点击事件中通过自定义事件将B页面的数据传递给父组件。
```html
<!-- B页面 -->
<template>
<div>
<p>姓名:{{ name }}</p>
<p>生日:{{ birthday }}</p>
<p>年龄:{{ age }}</p>
<button @click="handleClick">跳转到C页面</button>
</div>
</template>
<script>
export default {
props: ['name', 'birthday', 'age'],
methods: {
handleClick() {
// 触发自定义事件,并传递B页面的数据给父组件
this.$emit('pass-data', { name: this.name, birthday: this.birthday, age: this.age });
// 跳转到C页面
this.$router.push({ name: 'C' });
}
}
};
</script>
```
3. 在C页面中,使用props接收从B页面传递过来的值。
```html
<!-- C页面 -->
<template>
<div>
<p>姓名:{{ name }}</p>
<p>生日:{{ birthday }}</p>
<p>年龄:{{ age }}</p>
</div>
</template>
<script>
export default {
props: ['name', 'birthday', 'age']
};
</script>
```
在上述代码中,A页面通过`$emit`来触发自定义事件`pass-data`,将输入框的值传递给父组件。B页面通过props接收A页面传递过来的值,并在按钮点击事件中再次通过`$emit`来触发自定义事件`pass-data`,将B页面的数据传递给父组件。最后,C页面通过props接收B页面传递过来的值并进行展示。
这样,就可以使用子父组件传值的方式在A、B、C页面之间传递数据了。
阅读全文