当前位置: 首页 > Web前端 > vue.js

Vue的选项里有什么

时间:2023-03-31 16:51:08 vue.js

1.什么是选项?options,顾名思义,就是选项,或者说构造选项。是创建vue实例时传入的参数,是一个对象。constvm=newVue(options)这个对象包含哪些属性?每个属性是什么意思?这就是理解选项的重点。jQuery.js和Vue.js都是在js的基础上重新封装的库,需要创建相应的实例来封装相应的操作。比如通过$('div')得到一个jQuerydiv元素实例,也称为jQuery对象。jQuery对象包含了对选中div元素的各种操作API,所以jQuery实例封装了对选中元素的各种操作。而Vue.js在此基础上更进了一步,封装了所有对视图的操作,包括读写数据、监控数据变化、更新DOM元素等,并通过newVue(options)创建Vue实例,也称为作为一个Vue对象,这个Vue实例封装了所有操作元素视图的操作,可以很方便的通过Vue实例操作对应区域的视图。2.包括哪些属性?options对象有很多具体的可选属性,可以分为五类,可以在vue.js官网查看,如下:详细介绍可以参考vuejs官网-options3.entry属性elel属性也叫hanging加载点,可以看成是element的缩写。要创建vue实例,您需要知道在哪个元素上创建Vue实例以及在哪个视图上操作。定义挂载点有两种方式,mount即挂载1.设置el属性newVue({el:"#app",render:h=>h(App)})2.使用$mount接口newVue({render:h=>h(App)}).$mount("#app");datadata属性也称为内部数据。属性值可以是对象也可以是函数,但建议优先使用函数。Objects中的函数也称为方法。如果是组件中的数据,则必须使用函数。之所以首选函数是因为当使用同一个options对象作为参数创建多个Vue实例时,如果data属性的值是一个对象,当使用newVue(options)创建Vue实例时,该值的options.data属性会直接赋值给Vueinstance.data的属性,因为对象的赋值是复制地址,所以多个实例的data属性值指向同一个对象的地址,那么多个实例会共享一个数据对象,当一个实例改变数据对象时,另一个实例的数据对象也会改变。当data属性的值为函数时,Vue在创建实例时会执行data()函数,并将函数执行结果返回的对象赋值给Vueinstance.data属性,每个返回的对象函数执行的是不同的对象,所以多个实例的数据属性值对应不同的对象,其中一个发生变化不会影响另一个,相互独立。1.使用对象data:{n:0}2.使用函数data(){return{n:0}}methods方法属性也叫method,属性值是一个对象,对象中的属性都是功能。这些函数可以是事件处理的回调函数,也可以是普通函数。特点是每次页面渲染时都会执行methods,如下:methods:{add(){this.n+=1}}componentscomponents表示组件,也是基于模块化理念设计的Vue实例便于重复使用。分为三种,如下:1.全局注册全局定义一个组件,可以在整个项目中随时使用。定义方法如下Vue.component('my-component-name',{//...options...这部分和创建vue实例的options是一样的,毕竟组件是一个vue实例})newVue({el:'#app'})

2.部分注册//通过一个普通的JavaScript对象定义组件varComponentA={options}//然后在组件选项中定义你要使用的组件newVue({el:'#app',components:{component-a:ComponentA//或者直接在component-b里面定义对象:{//内容和options一样,但是data必须是函数}}})
3.模块系统将组件分离成一个*.vue文件,然后通过import导入引用,如下main.jsimportComponentAfrom'./ComponentA.vue'newVue({el:'#app',components:{ComponentA:ComponentA//ES6语法中,属性和属性值相同时,只能写一个//ComponentA}})
总结推荐使用最后一个模块系统组件,模块化程度更高,结构更清晰数据,组件使用时,通过标签的全局属性作为参数传递。下面以引入完整版vue.js为例HelloWorld.vuedatatransfermain.jsimportHelloWorldfrom./HelloWorld.vuenewVue({template:`//这个只能传字符串//这个是传变量,也就是this.ms//也可以:传函数名`,data:{ms:'hellomyworld'},methods:{fn(){...}}})生命周期钩子在Vue中,每个状态转换点称为一个钩子,比如afterinstancecreation,andinstancecreationBefore,实例创建是一个hook,对应前后两个阶段,即创建实例之前的beforeCreate,创建实例之后的create。以下都是成对的,大家只需要记住一个即可。此属性是在其相应时期调用的函数。创建的实例出现在挂载的内存中(可以在该钩子处进行数据请求)实例出现在页面中更新的实例被更新,销毁的实例从页面和内存中消失