Vue el和data的两种写法(5)

本文介绍了Vue实例化的两种方式——对象式和函数式,重点讲解了函数式写法的灵活性,如延迟绑定容器。同时,讨论了data属性的声明方式,强调在组件中应使用函数式声明以避免数据污染。还提醒开发者在Vue管理的函数中避免使用箭头函数以保持正确的this指向。
摘要由CSDN通过智能技术生成

el的另一种写法:

一般我们写el是这种形式:

        new Vue({
            el: '#root',
            data: {
                name: 'Pickachu'
            }
        })

这种写法叫对象式,这就要求我们在new Vue的时候就确定了我们要绑定哪个容器。

上述写法也可以改成:

        const v = new Vue({
            // el: '#root',
            data: {
                name: 'Pickachu'
            }
        })
        v.$mount('#root');

这里实例化了一个Vue对象v,然后调用了$mout()方法,此方法在它的原型链上,作用是指定绑定的容器。这种写法叫函数式,它比对象式写法更灵活,例如我们可以在外层包上一层setTimeout,让它在一段时间后再绑定容器。

这个函数为什么叫mount?

mount有挂载的意思,Vue工作的过程是把容器里的模板交给Vue实例进行解析,再把解析好的内容挂载到页面的指定位置。

data的写法也是分为对象式和函数式。

对象式就是我们之前的key-value式的写法,函数式要求我们把data写成一个函数,函数的返回值一个对象。

例如:

const v = new Vue({
            el: '#root',
            // data: {
            //     name: 'Pickachu' 对象式
            // }
            data: function(){
                return{name: 'Pickachu'
            }     //声明式   
        }
        })

注意此处function是Vue调用的,所以this指向的Vue实例对象。如果你用箭头函数的话,由于箭头函数没有this,它就会往外找,this就虎指向window。建议不要在这里使用箭头函数。

一个重要原则:由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了。

我们在对象里写方法一般可以把:和function省略,所以这里可以写成:

const v = new Vue({
            el: '#root',
            data(){
                return{name: 'Pickachu'
            }     //声明式   
        }
        })

写法的选择:初学阶段随意,data在学习组件后必须用函数式写法,否则容易报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值