When vue newcomers ask for help, why can't you get the value of this.isPhoneFooter with the arrow function?

my switchPhone function uses the arrow function to write that the value of this.isPhoneFooter cannot be obtained, but it can be obtained correctly by
switchPhone () {} . What is the reason for this?

the code is as follows

export default{
        data(){
            return {
                isPhoneFooter: true,
                active: false,
                items01: [
                    {select:""},
                    {select:""},
                    {select:""},
                    {select:""},
                    {select:""},
                    {select:""}
                ],
                items02: [
                    {select:""},
                    {select:""},
                    {select:"/"},
                    {select:"3D"},
                    {select:""}
                ],
                items03: [
                    {select:""},
                    {select:""},
                    {select:""}
                ]
            }
        },
        methods: {
            switchPc() {
                //console.log("");
                //let w= document.documentElement.clientWidth || document.body.clientWidth;
                //let h= document.documentElement.clientHeight || document.body.clientHeight;
                //document.getElementsByTagName("body")[0].style.zoom= "0.1";
                this.isPhoneFooter = false;
            },
            switchPhone:()=>{
                //console.log("");
                document.getElementsByClassName("phone_home_middle")[0].style.width = "150px";
                this.isPhoneFooter = true;
            }
        }
    }
Dec.20,2021

original link

Note that should not use the arrow function to define the method function (for example, plus: () = > this.aPP). The reason is that the arrow function is bound to the context of the parent scope, so the this will not point to the Vue instance as expected, and the this.a will be undefined.

is actually the context in which the arrow function is bound to the parent scope, and the popular point points to the nearest this pointing to
.
    window.a = 2;
    function setNum(){
        this.a = 1
    }
    setNum()
    new Vue({
        el: '-sharpwrap',
        data:{
            
        },
        methods:{
            switchPhone:()=>{
                console.log(this)   //thiswindow  
            }
        }
    })

Do not use the arrow function in

method. The arrow function binds to the parent scope and does not point to the vue root instance. Just switch to this

.
switchPhone(){
                //console.log('');
                document.getElementsByClassName('phone_home_middle')[0].style.width = '150px';
                this.isPhoneFooter = true;
            }
MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1b4000c-2bc55.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1b4000c-2bc55.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?