vue切换组件基础模板
需求:登录注册两个按钮,点击登录的时候登录显示,点击注册的时候注册显示,另外一个隐藏
如下图所示先定义两个template组件
<template id="login"> <div> <h2>用户登录</h2> <p> 用户名:<input type="text" v-model="username"> </p> <p> 密 码:<input type="password" v-model="userPwd"> </p> <p> <button @click="toLogin">登 录</button> </p> </div> </template> <template id="register"> <div> <h2>用户登录</h2> <p> 用户名:<input type="text" v-model="username"> </p> <p> 密 码:<input type="password" v-model="userPwd"> </p> <p> 性 别: <label for=""> <input type="radio" name="sex" v-model="sex">男 </label> <label for=""> <input type="radio" name="sex" v-model="sex">女 </label> </p> <p> <button @click="toReg">注 册</button> </p> </div> </template>
并且在各自的组件中进行初始化数据,
<script> // 注册组件的模板 Vue.component('login', { template:'#login', data () { return { username:'', userPwd:'' } }, methods: { toLogin(){ console.log('要提交的登录数据'+this.username + this.userPwd); } } }) Vue.component('register', { template:'#register', data () { return { username:'', userPwd:'', sex:'', } }, methods: { toReg(){ console.log('要提交的注册数据'+this.username + this.userPwd); } } }) let vm = new Vue({ el : "#app", data : { flag:true, } }) </script>
我们使用v-if 和else-if来进行控制两个标签的切换:
<div id="app"> <a @click.prevent="flag=true" href="">登录</a> 注意:这里的prevent是阻止默认事件,如果不这样子页面会刷新一下,有问题 <a @click.prevent="flag=false" href="">注册</a> <login v-if="flag"></login> <register v-else></register> </div>
利用component元素实现组件切换 暂不写
<component :is="组件名称"></component>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了