今天看啥  ›  专栏  ›  我去_6aee

我的学习笔记一:前端后台组件的应用与须知

我去_6aee  · 简书  ·  · 2019-06-09 12:04

ue组件是可复用的 Vue 实例,且带有一个名字。当定义这些组件时,你会发现它的 data 并不是直接提供一个对象。取而代之的是一个组件的 data 选项必须是一个函数,这样就会让每个实例维护一份被返回对象的独立的文件。为了能在模板中使用,这些组件必须先注册以便 Vue 能够识别。两种组件的注册类型分别为全局注册和局部注册。全局注册组件通过 Vue.component 注册。全局注册的组件可以用在其被注册之后的任何 (通过 new Vue) 新创建的 Vue 根实例,也包括其组件Vue组件树中的所有子组件的模板中。

Prop 是你可以在组件上注册的一些自定义特性。当一个值传递给一个 prop 特性的时候,它就变成了那个组件实例的一个属性。一个组件默认可以拥有任意数量的 prop,任何值都可以传递给任何 prop。单向数据流:子组件不能直接修改父组件中传递的数据。可以在子组件data选项中存储父组件传递的数据 之后修改子组件中的数据 即可。在点击子组件时,设置事件函数将自身得值(this.a)改变,a值存放的时通过this取到从父组件传过来值。这样就能在子组件里修改从父组件里传过来得值。


子组件传值给父组件。当父组件需要使用子组件的某一个值时。在子组件模板中设置一个点击事件函数。当点击事件时通过$emit向父组件发送一个事件,并把想要传送的值放在函数的第二个参数。发送的函数在父组件注册的子组件标签时触发。触发函数后接着触发父组件的自定义函数。并且传入参数value。Value就是通过子组件发送事件时存放的值。将value值用this.a=value就可以在父组件中使用子组件的数据了。


slot 插槽可以让组件更加灵活slot插槽  默认是没有名字的  可以给slot加上name属性 slot也可以设置默认值,一个槽可以被插入多个内容,多个内容可以全都放在template中,只要给template命名即可。Solt插槽是在template中设置slot属性。当给solt添加上名字的时候就可以在组件的任意部位使用。插槽可以提供一个默认内容,如果如果父组件没有为这个插槽提供了内容,会显示默认的内容。如果父组件为这个插槽提供了内容,则默认的内容会被替换掉。当需要多个插槽时,可以使用<slot>的特性:name。这个特性可以用来定义额外的插槽。


作用域插槽就是父组件在调用子组件的时候给子组件传了一个插槽,这个插槽为作用域插槽,该插槽必须放在template标签里面,同时声明从子组件接收的数据放在一个自定义属性内,并定义该数据的渲染方式。作用域插槽的内部工作原理是将你的插槽内容包括在一个传入单个参数的函数里:这意味着 v-slot 的值实际上可以是任何能够作为函数定义中的参数的JavaScript 表达式。所以在支持的环境下 (单文件组件现代浏览器),你也可以使用 ES2015 解构来传入具体的插槽 prop。这样可以使模板更简洁,尤其是在该插槽提供了多个 prop 的时候。





原文地址:访问原文地址
快照地址: 访问文章快照