watch

 

            监听数据的改变

            只有当监听的数据改变的时候,里边的函数才能触发

            第一种

                监听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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值