xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

vue & lifecycle methods & this bug & ES6 Arrow function & this bind bug

vue & lifecycle methods & this bug

image

ES6 Arrow function & this bind bug

bad

fetchTableData: (url = ``, options = {}) => {}


    // arrow function & this bind bug!
    // fetchTableData: (url = ``, options = {}) => {
    fetchTableData (url = ``, options = {}) {
        // fetchTableData
        // return Promise && async await
        // let url = "http://10.1.5.202/es6-test/axios/preview-user.new.json";
        if (!url) {
            url = "http://10.1.5.202/es6-test/axios/preview-user.new.json";
        }
        let that = this;
        console.log(`this =`, this);
        console.log(`that =`, that);
        // console.log(`this.a.data =`, this.a.data);
        // Axios.post(url, options)
        Axios.get(url)
        .then((res) => {
            let {
                data: json
            } =  res;
            if (json.data.length) {
                // that.a.data.totalPage = json.data.length;
                // that.a.data.allDatas = json.data;
                // // pagination
                // that.a.data.table = that.a.methods.getPaginationData(that.a.data.allDatas, that.a.data.currentPage, that.a.data.pageSize);
                // that.$data.totalPage = json.data.length;
                // that.$data.allDatas = json.data;
                // // pagination
                // that.$data.table = that.getPaginationData(that.$data.allDatas, that.$data.currentPage, that.$data.pageSize);
                this.$data.totalPage = json.data.length;
                this.$data.allDatas = json.data;
                // pagination
                this.$data.table = this.getPaginationData(this.$data.allDatas, this.$data.currentPage, this.$data.pageSize);
            }
        });
    },

ES6 & class methods

OK

    showInitTableData(url = ``) {
        console.log(`init this =`, this);
        Axios.get(url)
        .then((res) => {
            let {
                data: json
            } =  res;
            if (json.data.length) {
                this.$data.totalPage = json.data.length;
                this.$data.allDatas = json.data;
                // pagination
                this.$data.table = this.getPaginationData(this.$data.allDatas, this.$data.currentPage, this.$data.pageSize);
            }
        }); 
    },

Vue 2 lifecycle

https://v2.vuejs.org/v2/api/#Options-Lifecycle-Hooks

refs



©xgqfrms 2012-2020

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @   xgqfrms  阅读(187)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示