vue-day7

一:ref引用

1:什么是ref引用

ref在不依赖于jquery的情况下,获取Dom元素或组件的引用

每一个vue组件实例上,都包含一个$refs对象,里面存储着对应的DOM元素或组件的引用,默认情况下,组件的$refs指向一个空对象

 

2:ref引用DOM元素

获取元素改变样式

 3:ref引用组件实例

ref除了可以获取Dom元素引用,还可以引用组件实例,

引用到组件实例后,就可以调用组件里的方法

  4:this.$nextTick(cd)方法

组件的 $nextTick(cb) 方法,会把cb回调函数推迟到下一个DOM更新周期之后执行

就是等的DOM异步重新渲染后,在执行回调函数,从而保证cb回调函数能成功获取到DOM元素。

 二:动态组件

动态组件指的是动态切换组件的显示和隐藏。vue提供了一个内置的<component>组件,专门用来实现组件的动态渲染

1:<component>是组件的占位符

2:通过is属性动态的指定要渲染的组件名

3:<component is=“要渲染的组件名></component>

1:实现组件的动态渲染

 

 2:使用keep-alive保持状态

默认情况下,切换组件时无法保持组件状态,此时可以使用vue的内置的<keep-ail>组件保持动态组件的状态

三:插槽Slot

插槽slot是为vue组件封装者提供的能力,允许咋开发者封装组件时,把不确定,希望由用户指定的部分定义为插槽

即封装时的占位符

 1:插槽的基本使用

通过<slot>元素定义插槽,从而为用户预留内容占位符

Myhome组件内

 App根组件内

 注意:在封装组件时没有预留任何插槽用户自定义的内容将会被丢失

2:插槽的后备内容(默认内容)

在封装组件时,可以为<slot>插槽提供后备内容(默认内容),如果组件的使用者没有为插槽提供任何内容,则后背内容会生效

使用组件时没提供内容后备内容生效

使用组件时提供内容时则后备内容不生效

3:具名插槽

如果在封装组件需要预留多个插槽节点,则需要为每个<slot>指定具体的name名称,这种待遇具体名称的插槽叫“具名插槽“

注意:如果没有指定名称name,则这个插槽隐含名称default

定义多个具名插槽

 使用具名插槽

在向一个具名插槽提供内容时可以用<template>元素上使用v-slot指令,并以v-slot的参数的形式提供具名插槽的名称

在vue中<template>只是一个容器

 4:具名插槽简写形式

跟v-on和v-bind一样,v-slot也有简写v-slot:替换为#,列如v-slot:header改为#header

 5:作用域插槽

在封装组件的过程中,可以为预留的<slot>插槽绑定props数据,这种带有props数据的<solt>叫做作用域插槽

传值

 接收

 拓展

自定义变量asd接收值,接收的值是个对象,传的值info,age为对象的属性

 

 6:解构作用域插槽的传值

 

四:自定义指令

vue自定义指令分为两种

私有自定义指令

全局自定义指令

1:声明私有自定义指令

在每个vue组件中,可以在directives节点下声明私有自定义指令

 el代表当前绑定的DOM元素

mounted函数:被绑定的元素渲染到Dom上后自动触发

2:声明全局自定义指令

在main.js文件中定义

 3:updated函数

mounted函数只在元素第一次插入DOM时被调用,当DOM被刷新时mounted函数不会被触发

updated函数会在每次DOM更新完成后被调用

 !!!注意:vue3中是 mounted和updated

                        vue2中是bind和update

4:mounted和updated函数简写

如果mounted和updated逻辑相同,则可以简写成一下形式

 5:指令的参数值

在绑定指令时,可以通过“等号”的形式为指令绑定具体的参数值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值