Vue v-if v-show
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <h1>{{msg}}</h1> <p>--------------------</p> <div v-if="flag">true</div> <div v-else-if>false</div><!-- 根据条件变化会进行多次渲染,投机条件每次发生变化组件都会进行销毁和创建,并重新渲染 --> <p>--------------------</p> <div v-show="flag">true</div> <div v-show="!flag">false</div><!-- 只会进行一次初始化渲染,把所有条件的组件都渲染出来,再根据条件变化进行CSS显示和隐藏 --> <button @click="flag=!flag">btn</button> </div> <script src="js/vue.3.2.2.js"></script> <script> // 1、创建Vue的实例对象 const app = Vue.createApp({ data(){//定义数据 return { msg:'你好!', flag:false } } }).mount('#app'); </script> </body> </html>
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/html"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <div v-if="loginType==='phone'"> <label>手机: </label> <input type="text" placeholder="请输入手机号"> </br> <label>密码:</label> <input type="password" placeholder="请输入密码"> </div> <div v-else-if="loginType==='email'"> <label>邮箱: </label> <input type="text" placeholder="请输入邮箱号"> </br> <label>密码:</label> <input type="password" placeholder="请输入密码"> </div> <p>---------------------------------------</p> <div v-show="loginType==='phone'"> <label>手机: </label> <input type="text" placeholder="请输入手机号"> </br> <label>密码:</label> <input type="password" placeholder="请输入密码"> </div> <div v-show="loginType==='email'"> <label>邮箱: </label> <input type="text" placeholder="请输入邮箱号"> </br> <label>密码:</label> <input type="password" placeholder="请输入密码"> </div> <button @click="change">btn</button> </div> <script src="js/vue.3.2.2.js"></script> <script> // 1、创建Vue的实例对象 const app = Vue.createApp({ data(){//定义数据 return { msg:'你好!', loginType: 'phone' } }, methods:{ change(){ this.loginType === 'phone' ? this.loginType='email':this.loginType='phone'; // this.loginType === 'email' ? this.loginType='phone':tis.loginType='email'; } } }).mount('#app'); </script> </body> </html>