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

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.dtcms.com/a/98640.html

相关文章:

  • SOA、ESB与微服务:架构演进与对比分析
  • 【大前端系列20】JavaScript核心:项目实战从零构建任务管理系统
  • 深入解析 Vue Router 与钩子函数:从核心原理到最佳实践
  • ChemBioServer: 一个在线“药物发现/再利用”的平台
  • 人工智能安全:从技术防御到全球治理的多层次应对策略
  • Error in torch with streamlit
  • JavaWeb——案例(1/20)-准备工作(案例目标、环境搭建、三层架构搭建、规范要求)附带SQL脚本
  • c++ vs和g++下的string结构
  • 某大麦手机端-抢票
  • Mybatis_Plus中常用的IService方法
  • 图解AUTOSAR_SWS_SPIHandlerDriver
  • PyQt6实例_批量下载pdf工具_主线程启用线程池
  • 语音波形编码与参量编码 LPC 的性能分析
  • 开源项目 vue-element-admin本地启动教程
  • 求职笔试题
  • 信号与系统(郑君里)第一章-绪论 1-21 课后习题解答
  • java面向对象从入门到入土
  • 算法题(111):k与迷宫
  • [Mac]利用Hexo+Github Pages搭建个人博客
  • 计算机视觉初步(环境搭建)
  • 对内核fork进程中写时复制的理解记录
  • Servlet注解与使用模板方法设计模式优化oa项目
  • 简单了解一下Unity的MaterialPropertyBlock
  • C++进阶——封装哈希表实现unordered_map/set
  • 基于飞腾/龙芯+盛科CTC7132全国产交换机解决方案
  • MySQL数据库和表的操作之SQL语句
  • dom0运行android_kernel: do_serror of panic----failed to stop secondary CPUs 0
  • Java学习------源码解析之StringBuilder
  • C++笔记-string(中)
  • Keil编译生成的axf文件的介绍