Vue组件知识梳理
组件概念概念:图中中间块作为入口组件,那么入口组件模板下挂载的组件就是入口组件的子组件(图中header组件等).)1.Partialcomponents3Stepbyformula:phonon,hangingsub,使用sub声明一个局部组件,变量名首字母大写(为了和H5标签区别),里面的内容是类似于vue实例化对象的内容,但是el不是必须的,data必须是一个返回对象的函数,用来将组件挂载到入口文件的components对象中。用在入口文件的模板中,可以是双闭标签,也可以是单闭标签2.全局组件Vue.component(name,options)第一个参数是组件的名称,第二个参数是组件的对象注意全局组件在创建Vue实例化对象之前,否则会报错//全局组件(在创建Vue实例之前)Vue.component('Vbtn',{template:``})//1.创建入口组件//2.创建头部组件、侧边栏组件和内容组件varHeard={template:`
我是头部组件
`}varAside={template:`
我是侧边栏组件
`}varContent={template:`
我是内容组件
`}varApp={template:`
`,组件:{Heard,Aside,Content}}newVue({el:"#app",data(){return{msg:"Thisisatest"}},template:`
`,组件:{应用程序}});3.组件深入问题:为什么要通过父组件获取数据,传递给子组件?答:从父端获取数据到后端,然后分发到各个组件,可以减少后端的交互。否则,每个组件都会向后端发送请求,影响性能。1.parent使用child时,通过绑定一个自定义属性来传递。2.child必须声明props:['property']来接收parent绑定的自定义属性。3.接收为自己的,直接在模板中使用。this.propertyname中间的小补充:绑定自定义属性时:直接使用常量传递,变量传递加冒号总结父子父子:长子,hang-son,son-to-son:父子(property),child声明(receive),child使用child传递给parent1,parent使用child绑定自定义事件2,child触发自定义事件:this的第一个参数。$emit()为**自定义事件名称**第二个参数为**传入值**全局组件的数据传输1.通过VUE内置组件slot分发内容原因:如果不使用slot,则不能修改全局组件的内容作用:slot元素作为承载和分发内容的出口2、父子传值自定义属性直接传常量,不加冒号如果要触发原生事件,需要调用@nativeeventname.native3.命名槽声明内置component在子组件中使用vue:
在父组件中调用的目的是:一条数据可以用于一个坑,数据就不会乱了。emit和$on挂载到公共vue实例。$emit参数:第一个参数为自定义方法名,第二个参数为要传递的值。$on参数:第一个是传入的方法名,第二个是回调函数,用于处理数据例子: 附加功能1,过滤组件filterfilters1,功能:加油加醋当前数据2、语法:在组件Object中声明使用过滤器,返回一个函数,该函数必须有返回值3、调用:在模板中调用过滤器:数据属性|过滤器名称varContent={template:`
{{msg|RmbData}}
`,data(){return{msg:10}},filters:{RmbData(value){return'$'+value}}}全局filter过滤语法:Vue.filter(filtername,callbackfunction)过滤参数:默认第一个参数为管道符号前的值,调用时不需要传入。2.listenerwatch一次只能监控一个属性基本数据类型-简单监控复杂数据类型-深度监控3.可同时监控计算属性computed对于多个属性,默认只监控getter对象返回一个函数。setter的实现与方法进行了比较。1.计算属性有缓存,但方法没有。1.beforeUpdate数据更新前,操作虚拟DOM官网原文:数据更新时调用,发生在虚拟DOM打补丁之前。这适用于更新前访问已有的DOM,比如手动移除添加的事件监听器。updated该钩子在虚拟DOM由于数据更改而重新渲染和修补后调用。调用此挂钩时,组件DOM已更新,因此您现在可以执行依赖于DOM的操作。然而,在大多数情况下,您应该避免在###activated期间更改状态。如果您想响应状态变化,通常最好改用计算属性或观察者。不清楚的问题点:2.Activated和deactivated结合Vue内置组件:
可以用来缓存组件,防止频繁创建和销毁组件3.附生命周期实践代码:生命周期标题> 正文>