Vue3的切换小案例
效果:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<script src="https://unpkg.com/vue@next">script>
<style>
*{
box-sizing: border-box;
margin: 0;
padding: 0;
}
html,body{
font-family: Arial, Helvetica, sans-serif;
}
#app{
width: 400px;
height: 100vh;
margin: auto;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
h1,h3{
margin-bottom: 1rem;
font-weight: normal;
}
img{
border-radius: 50%;
border: 5px #333 solid;
margin-bottom: 1rem;
}
.male {
border-color: steelblue;
background-color: steelblue;
}
.female{
border-color: pink;
background-color: pink;
color: #333;
}
button {
cursor: pointer;
display: inline-block;
background: #333;
color: white;
font-size: 18px;
border: 0;
padding: 1rem 1.5rem;
}
button:focus{
outline: none;
}
button:hover{
transform: scale(0.98);
}
style>
head>
<body>
<div id="app">
<img v-bind:src="picture" :alt="`${firstName} ${lastName}`" :class="gender">
<h1>{{firstName}} {{lastName}}h1>
<h3>Email: {{email}}h3>
<button :class="gender" @click="getUser()">Get Random Userbutton>
div>
<script>
const app =Vue.createApp({
data(){
return {
firstName : 'John',
lastName: 'Doe',
email: 'john@gmail.com',
gender:'male',
picture:'https://randomuser.me/api/portraits/men/18.jpg'
}
},
methods:{
async getUser(){
const res =await fetch('https://randomuser.me/api')
const {results} = await res.json();
console.log(results)
this.firstName = results[0].name.first
this.lastName = results[0].name.last
this.email = results[0].email
this.gender = results[0].gender
this.picture = results[0].picture.large
}
}
})
app.mount("#app")
script>
body>
html>