24. watch
隊長の板橋張基孝のVue.js入門インフラストラクチャコースを聞いて内容を整理した.
毎日20分ちょっとVuejs頑張れ.
IDE: Visual Studio Code
クロムビュー開発者ツール:Vue.js devtools
時計とは何ですか。
毎日20分ちょっとVuejs頑張れ.
IDE: Visual Studio Code
クロムビュー開発者ツール:Vue.js devtools
時計とは何ですか。
特定の論理のビューインスタンスのプロパティは、データの変化に基づいて実行できます.
実習を通して了解する.
1.ボタンを押して数字を増やす。
「追加」ボタンを押すとnumデータが増加します.
ひげカッコを使ってスクリーンに直接噴き出します.
<!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>Document</title>
</head>
<body>
<div id="app">
<button v-on:click="addNum">increase</button>
{{ num }}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
data: {
num : 10
},
methods: {
addNum: function(){
this.num = this.num + 1;
}
}
})
</script>
</body>
</html>
2.数字が増加した場合、logを出力しようとします。
出力logの関数logTextを作成し、メソッドに追加します. methods: {
addNum: function(){
this.num = this.num + 1;
},
logText: function(){
console.log('changed');
}
}
watchは、ターゲット変数名と関数を作成します. watch: {
num : function(){
this.logText();
}
},
watchという属性は、基本的にデータに宣言された変数に対して使用されます.
numが増加するたびに、コンソールにログが表示されます.
3.数字が12の場合、文字列を画面に出力
dataに文字列変数numTextを作成します. data: {
num : 10,
numText : ""
},
12の場合、logText関数にif文を追加してnumTextを出力します. methods: {
addNum: function(){
this.num = this.num + 1;
},
logText: function(){
console.log('changed');
if(this.num == 12 ){
this.numText = "num is 12"
}
}
}
画面に{{}ヒゲカッコを使用してnumTextを出力する場所に書きます. <div id="app">
{{ numText }}
<button v-on:click="addNum">increase</button>
{{ num }}
</div>
ボタンを押すと数字が12の場合、「num is 12」文字列が出力されます.
実践の完全なコード
<!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>Document</title>
</head>
<body>
<div id="app">
{{ numText }}
<button v-on:click="addNum">increase</button>
{{ num }}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
data: {
num : 10,
numText : ""
},
watch: {
num : function(){
this.logText();
}
},
methods: {
addNum: function(){
this.num = this.num + 1;
},
logText: function(){
console.log('changed');
if(this.num == 12 ){
this.numText = "num is 12"
}
}
}
})
</script>
</body>
</html>
次のレッスンではwatchプロパティとcomputedプロパティを比較します.
Reference
この問題について(24. watch), 我々は、より多くの情報をここで見つけました
https://velog.io/@freejia/24.-watch
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<!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>Document</title>
</head>
<body>
<div id="app">
<button v-on:click="addNum">increase</button>
{{ num }}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
data: {
num : 10
},
methods: {
addNum: function(){
this.num = this.num + 1;
}
}
})
</script>
</body>
</html>
methods: {
addNum: function(){
this.num = this.num + 1;
},
logText: function(){
console.log('changed');
}
}
watch: {
num : function(){
this.logText();
}
},
data: {
num : 10,
numText : ""
},
methods: {
addNum: function(){
this.num = this.num + 1;
},
logText: function(){
console.log('changed');
if(this.num == 12 ){
this.numText = "num is 12"
}
}
}
<div id="app">
{{ numText }}
<button v-on:click="addNum">increase</button>
{{ num }}
</div>
<!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>Document</title>
</head>
<body>
<div id="app">
{{ numText }}
<button v-on:click="addNum">increase</button>
{{ num }}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
data: {
num : 10,
numText : ""
},
watch: {
num : function(){
this.logText();
}
},
methods: {
addNum: function(){
this.num = this.num + 1;
},
logText: function(){
console.log('changed');
if(this.num == 12 ){
this.numText = "num is 12"
}
}
}
})
</script>
</body>
</html>
Reference
この問題について(24. watch), 我々は、より多くの情報をここで見つけました https://velog.io/@freejia/24.-watchテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol