099 Time to Practice Props & Custom Events - Solution

步骤

1、ActiveUser.vue

<template>
    <section>
        <h2>{{ username }}</h2>
        <h3>{{ userage }}</h3>
    </section>
</template>

<script>
export default {
    props: {
        username: {
            type: String,
            required: true
        },
        userage: {
            type: Number,
            required: true
        }
    }
}
</script>

2、UserData.vue

<template>
    <section>
        <form @submit.prevent="submitData">
            <input type="text" placeholder="Your Name" v-model="enteredName">
            <input type="text" placeholder="Your Age" v-model="enteredAge">
            <button>Set User Data</button>
        </form>
    </section>
</template>

<script>
export default {
    data() {
        return {
            enteredName: '',
            enteredAge: ''
        }
    },
    methods: {
        submitData() {
            this.$emit('set-data', this.enteredName, this.enteredAge)
            this.enteredName = ''
            this.enteredAge = ''
        }
    }
}  
</script>

3、main.js

import { createApp } from 'vue'
import App from './App.vue'
import ActiveUser from './components/ActiveUser.vue';
import UserData from './components/UserData.vue';

const app = createApp(App);

app.component('active-user', ActiveUser);
app.component('user-data', UserData);

app.mount('#app');

4、App.vue

<template>
  <div>
    <active-user :username="user.name" :userage="user.age"></active-user>
    <user-data @set-data="setData"></user-data>
  </div>
</template>

<script>
export default {
  data() {
    return {
      user: {
        name: 'Kevin Huang',
        age: 28,
      }
    };
  },
  methods: {
    setData(user, age) {
      this.user.name = user;
      this.user.age = +age;
    }
  },
}
</script>

<style>
html {
  font-family: sans-serif;
}

section {
  margin: 2rem auto;
  max-width: 40rem;
  border-radius: 12px;
  border: 1px solid #ccc;
  padding: 1rem;
}
</style>

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄健华Yeah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值