lesson 26: two-way binding

This commit is contained in:
Andreas Zweili 2021-01-18 20:56:35 +01:00
parent 4fc96365f6
commit 2926059c42
2 changed files with 36 additions and 32 deletions

View File

@ -1,22 +1,25 @@
const app = Vue.createApp({ const app = Vue.createApp({
data() { data() {
return { return {
counter: 0, counter: 0,
name: '' name: "",
}; };
},
methods: {
setName(event, lastName) {
this.name = event.target.value + ' ' + lastName;
}, },
add(num) { methods: {
this.counter = this.counter + num; setName(event, lastName) {
this.name = event.target.value;
},
add(num) {
this.counter = this.counter + num;
},
reduce(num) {
this.counter = this.counter - num;
// this.counter--;
},
resetInput() {
this.name = "";
},
}, },
reduce(num) {
this.counter = this.counter - num;
// this.counter--;
}
}
}); });
app.mount('#events'); app.mount("#events");

View File

@ -1,28 +1,29 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vue Basics</title> <title>Vue Basics</title>
<link <link href="https://fonts.googleapis.com/css2?family=Jost:wght@400;700&display=swap" rel="stylesheet" />
href="https://fonts.googleapis.com/css2?family=Jost:wght@400;700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="styles.css" /> <link rel="stylesheet" href="styles.css" />
<script src="https://unpkg.com/vue@next" defer></script> <script src="https://unpkg.com/vue@next" defer></script>
<script src="app.js" defer></script> <script src="app.js" defer></script>
</head> </head>
<body>
<body>
<header> <header>
<h1>Vue Events</h1> <h1>Vue Events</h1>
</header> </header>
<section id="events"> <section id="events">
<h2>Events in Action</h2> <h2>Events in Action</h2>
<button v-on:click="add(10)">Add 10</button> <button v-on:click="add(10)">Add 10</button>
<button v-on:click="reduce(5)">Subtract 5</button> <button v-on:click="reduce(5)">Subtract 5</button>
<p>Result: {{ counter }}</p> <p>Result: {{ counter }}</p>
<input type="text" v-on:input="setName($event, 'Schwarzmüller')"> <input type="text" v-model="name">
<p>Your Name: {{ name }}</p> <button v-on:click="resetInput">Reset Input</button>
<p>Your Name: {{ name }}</p>
</section> </section>
</body> </body>
</html> </html>