zoukankan      html  css  js  c++  java
  • xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

    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);
                }
            }); 
        },
    
  • 相关阅读:
    python type and __mateclass__和__new__的使用
    python讲解类的特殊成员方法
    python 静态方法、类方法、属性方法详解
    python 多态
    nginx的常用设置
    初识vue
    设置跨域访问
    1分钟安装wordpress
    wechat,wechat-api,mongoose,winston等的使用
    winston自定义日志管理
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/9956267.html
Copyright © 2011-2022 走看看