当前位置: 首页 > article >正文

Vue3组件事件用户信息卡练习

用户信息卡

题目要求

实现一个用户信息卡系统,包含以下功能:

1.父组件收集用户信息(姓名、年龄、班级)

2.子组件接收并展示用户信息卡片

3.添加基本的数据验证

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>用户信息卡</title>

    <script src="./vue.global.js"></script>

    <style>

        .user-card {

            border: 1px solid #ddd;

            border-radius: 8px;

            padding: 15px;

            margin-top: 20px;

            width: 250px;

            box-shadow: 0 2px 4px rgba(0,0,0,0.1);

        }

        .input-group {

            margin-bottom: 10px;

        }

        label {

            display: inline-block;

            width: 60px;

        }

    </style>

</head>

<body>

    <div id="app">

        <h2>用户信息输入</h2>

        <div class="input-group">

            <label >姓名:</label>

            <input type="text" v-model="user.name">

        </div>

        <div class="input-group">

            <label>年龄:</label>

            <input type="number" v-model="user.age">

        </div>

        <div class="input-group">

            <label>班级:</label>

            <input type="text" v-model="user.classl">

        </div>

        <user-card

            :name="user.name"

            :age="user.age"

            :classl="user.classl">

        </user-card>

    </div>

    <template id="user-card-template">

        <div class="user-card">

            <h3>用户信息卡</h3>

            <p><strong>姓名:</strong>{{name||'未填写'}}</p>

            <p><strong>年龄:</strong>{{age||'未填写'}}</p>

            <p><strong>班级:</strong>{{classl||'未填写'}}</p>

            <p v-if="age&&age >=18" style="color: green;">成年用户</p>

            <p v-else-if="age&&age < 18" style="color: orange;">未成年用户</p>

        </div>

    </template>

    <script>

        const UserCard={

            template:'#user-card-template',

            props:{

                name:{

                    type:String,

                    validator:value=>value.length<=10

                },

                age:{

                    type:Number,

                    validator:value=>value>0&&value<120

                },

                classl:{

                    type:String,

                   default:'未知班级'

            }

        }

    }

    const app=Vue.createApp({

        data(){

            return{

                user:{

                    name:'张三',

                    age:25,

                    classl:"XXX班"

                }

            }

        }

    })

    app.component("UserCard",UserCard)

    app.mount('#app');

    </script>

</body>

</html>


http://www.kler.cn/a/614581.html

相关文章:

  • 扩散模型总结
  • 外观模式(Facade Pattern):复杂系统的“统一入口”
  • 快速入手-基于Django-rest-framework的ModelViewSet终极版(七)
  • 前端路由守卫与后端权限验证,仅使用路由守卫是否安全?
  • 前端 VSCODE 插件开发总结 (后续将出专栏详细讲解开发的细节...)
  • 关于音频采样率,比特,时间轴的理解
  • Reactive编程:应用场景和传统比较
  • java网盘项目 目前 文件有分享表 文件夹也要创建分享表吗
  • 复古半色调褶皱照片效果ps特效滤镜样机 Halftone Crumpled Paper Effect
  • Baklib驱动企业知识管理数字化转型
  • CSS3学习教程,从入门到精通, CSS3 盒子模型的详细语法知识点及案例代码(23)
  • PERL开发环境搭建>>Windows,Linux,Mac OS
  • mac 下配置flutter 总是失败,请参考文章重新配置flutter 环境MacOS Flutter环境配置和安装
  • C 语言的未来:在变革中坚守核心价值
  • 【C++】基础3——正则表达式,静态多态(函数重载和模板),异常处理
  • 实变函数:集合与子集合一例(20250329)
  • 【免费】2007-2019年各省地方财政文化体育与传媒支出数据
  • RabbitMQ怎么实现延迟队列?
  • Python控制结构详解
  • sql长时间卡在gc current request事件