lesson 26: two-way binding
This commit is contained in:
parent
4fc96365f6
commit
2926059c42
|
@ -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");
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Reference in New Issue