监听数据的改变
只有当监听的数据改变的时候,里边的函数才能触发
第一种
监听data数据
data(val, oldval) {
console.log(val, oldval) // data的新值和老值
}
监听数据执行某一个函数方法
data: 'methods中的方法名'
立即执行immediate
data: {
handler(val,oldVal) {
// 执行代码块
},
immediate: true // 组件加载完成立即先执行一遍 handler里边的代码
当data改变的时候 再次执行handler里边的代码
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
watch
监听数据的改变
只有当监听的数据改变的时候,里边的函数才能触发
第一种
监听data数据
data(val, oldval) {
console.log(val, oldval) // data的新值和老值
}
监听数据执行某一个函数方法
data: 'methods中的方法名'
立即执行immediate
data: {
handler(val,oldVal) {
// 执行代码块
},
immediate: true // 组件加载完成立即先执行一遍 handler里边的代码
当data改变的时候 再次执行handler里边的代码
}
-->
<div id="app">
{{m}}
<ul>
<li v-for="(tab, index) in tabs" :key="index" @click="change(tab)">{{tab}}</li>
</ul>
</div>
</body>
<script src="vue.min.js"></script>
<script>
var app = new Vue({
el: "#app",
data: {
m: 123,
tabs: ['全部', '精华', '问答', '招聘'],
tab: '全部'
},
watch: {
m(val, oldVal) {
console.log(val, oldVal)
},
// tab(val) {
// console.log(222, val)
// fetch("https://cnodejs.org/api/v1/topics?tab=" + val).then(res => res.json()).then(res => {
// console.log(res)
// })
// },
// tab: 'getData'
tab: {
handler(val, oldval) {
fetch("https://cnodejs.org/api/v1/topics?tab=" + val).then(res => res.json()).then(res => {
console.log(res)
})
},
immediate: true // 立即执行
}
},
// created() {
// fetch("https://cnodejs.org/api/v1/topics?tab=" + '全部').then(res => res.json()).then(res => {
// console.log(res)
// })
// },
methods: {
change(i) {
this.tab = i
// fetch("https://cnodejs.org/api/v1/topics?tab=" + i).then(res => res.json()).then(res => {
// console.log(res)
// })
},
getData() {
console.log(1111)
}
}
})
</script>
</html>