Vue中的插槽和自定义指令

目录

一、插槽

1.默认插槽

2.具名插槽

3.作用域插槽

二、自定义指令

全局注册自定义指令

执行一次性初始化设置

组件vnode更新触发

局部注册自定义指令


一、插槽

父组件传递模板给子组件,子组件使用插槽声明slot元素承载分发内容出口。


1.默认插槽

父组件提供给子组件模板,默认会填充到默认插槽中

slot不设置name会隐式创建一个name为default的插槽

<slot name='default'></slot>
2.具名插槽

父组件提供了具体的模板,填充到具名插槽中

指定模板填充到具名插槽中 v-slot绑定具名插槽名称 可以简写为#

<template v-slot:header></template><slot name='header'></slot>

 默认插槽和具名插槽的使用:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body><div id="app"><my-child><div>我是父组件提供的模板{{msg}}</div><img width="150px" src="../../Axure/swipe/1.jpeg" alt=""><!-- <template v-slot:header> --><template #header><div>我是头部的内容</div></template><template v-slot:footer><div>我是底部的内容</div></template></my-child></div><script>let myChild = {data(){return {child:'我是子组件',user:{firstName:'zhao',lastName:'terry'}}},template:`<div>{{child}}<slot name='default'></slot>  <header><slot name='header'></slot>  </header><footer><slot name='footer'></slot>  </footer></div>`}new Vue({el:"#app",// 局部注册组件components:{'my-child':myChild},data:{msg:'hello vue2'},methods:{}})</script>
</body>
</html>
3.作用域插槽

父组件作用域使用子组件数据

父级作用域模板中获取子组件中数据 子组件向父组件传值 第二种方式

1.在子组件默认插槽中动态绑定插槽prop

<slot v-bind:user='user'>

2.在父组件模板中使用v-slot='插槽prop'接收子组件数据

<template v-slot='scope'>{{scope.user.xxxx}}</template>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.js"></script>
</head>
<body><div id="app"><my-child><template v-slot="scope"><div>{{scope.user.lastName}}</div></template></my-child></div><script>/*** 作用域插槽:*  父级作用域模板中获取子组件中数据 子组件向父组件传值 第二种方式*  1.默认插槽使用v-bind绑定插槽prop*  2.在父组件作用域中使用v-slot接收插槽prop*/let myChild = {data(){return {child:'我是子组件',user:{firstName:'zhao',lastName:'terry'}}},template:`<div>{{child}}<slot v-bind:user='user'>{{user.firstName}}</slot></div>`}new Vue({el:"#app",// 局部注册组件components:{'my-child':myChild},data:{msg:'hello vue2'},methods:{}})</script>
</body>
</html>

二、自定义指令

v-xxx

全局注册自定义指令
Vue.directive('指令名称',{当被绑定元素插入到父节点调用inserted(el,binding,vnode,oldNode){el---->绑定指令dom元素binding---->元素数据 valuevnode 虚拟节点 dom对象内存中数据表示},
    // 注册自定义指令Vue.directive('focus',{// 指令绑定dom元素执行钩子函数 调用一次bind(el,binding,vnode){console.log(el,binding);el.style.backgroundColor = binding.value;},// 当被绑定元素插入到父节点中inserted(el,binding,vnode){// console.log(el,binding,vnode,'2222');el.focus();}})

执行一次性初始化设置
bind(el,binding,vnode,oldNode){}
组件vnode更新触发
update(el,binding,vnode,oldNode){}})
局部注册自定义指令
      // 局部注册自定义指令directives:{myshow:{inserted(){},bind(el,binding){el.innerHTML = binding.value;},// 指令所在组件更新vnode调用update(el,binding,vnode){console.log(el,binding,vnode,'4444');el.innerHTML = binding.value;}}},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

maven限制内存使用峰值/最大内存

前言 通过设置虚拟机的内存大小&#xff0c;达到限制maven内存使用峰值的效果 方法1&#xff1a;修改mvn脚本 找到mvn脚本在MAVEN_OPTS参数值添加-Xms、-Xmx参数&#xff1a;MAVEN_OPTS"$MAVEN_OPTS -Xms512m -Xmx512m"效果图 windows系统下修改MAVEN_OPTS参数 …

STM32CubeMX配置HAL库输入捕获

STM32CubeMX配置HAL库输入捕获 STM32的输入捕获功能可以用来测量脉冲宽度或者频率。其工作原理是&#xff0c;通过检测TIMx_CHx上的边沿信号&#xff0c;在边沿信号发生跳变&#xff08;比如 上升沿/下降沿&#xff09;的时候&#xff0c;将当前定时器的值&#xff08;TIMx_C…

Open3D点云处理简明教程

推荐&#xff1a;用NSDT编辑器快速搭建可编程3D场景 这是“激光雷达入门”文章的延续。 在这篇文章中&#xff0c;我们将查看用于处理点云的 python 库和 Open3D 数据结构&#xff0c;执行可视化并操作点云数据&#xff0c;以便进行后续的分析处理。 如果你需要快速预览3D点云…

乐理基础-抽象的速度

通过 乐理基础-情绪与速度、具体的速度、BPM-CSDN博客 知道了具体的速度怎样去确定&#xff0c;通过 每分钟多少拍、音符等于多少、bpm方式&#xff0c;来精确形容每一拍的持续时间。 抽象的速度 或者说 不精确的速度&#xff1a; 抽象的速度一般有两种方式&#xff1a; 第一种…

vue组件,指令和自定义指令

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

modbus异常错误码说明

异常错误码说明 其中物理离散量输入和输入寄存器只能有I/O系统提供的数据类型&#xff0c;即只能是由I/O系统改变离散量输入和输入寄存器的数值&#xff0c;而上位机程序不能改变的数据类型&#xff0c;在数据读写上表现为只读&#xff0c;而内部比特或者物理线圈和内部寄存器或…

Fiddler抓包,怎么抓抓得好抓得快?

01.什么是 Fiddler? Fiddler 是一个 HTTP 协议调试代理工具&#xff0c;它能够记录并检查所有你的电脑和互联网之间的 HTTP 通讯。Fiddler 提供了电脑端、移动端的抓包、包括 http 协议和 https 协议都可以捕获到报文并进行分析&#xff1b;可以设置断点调试、截取报文进行请求…

虾皮广告怎么做:如何在虾皮平台上进行广告投放

在虾皮&#xff08;Shopee&#xff09;平台上进行广告投放可以帮助您提高产品的曝光度和销量。通过有针对性的广告&#xff0c;您可以在虾皮平台上吸引更多的潜在买家&#xff0c;提高产品的可见度并增加销售机会。本文将为您介绍在虾皮平台上创建和管理广告的一些建议&#xf…

058:vue组件引用外部js的方法

第058个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

Git 配置多个 SSH-Key

Git 配置多个 SSH-Key &#xff08;两个都是gitee&#xff09; 先看图&#xff0c;官网固然重要&#xff0c;但是不完全行&#xff08;因为官网示例是一个gitee一个github&#xff09;&#xff0c;现在想是想多个都是gitee在他上面稍微更改即可 一般不对遇到这种问题&#xf…

Spring Boot 配置属性中的连字符解析

配置属性命名规则 在Spring Boot中&#xff0c;配置文件&#xff08;如application.properties或application.yml&#xff09;中的属性通常使用连字符&#xff08;-&#xff09;来分隔单词。这是为了遵循常见的配置命名约定&#xff0c;使得配置文件更易于阅读。 属性解析和松…

【vue】开发常见问题及解决方案

有一些问题不限于 Vue&#xff0c;还适应于其他类型的 SPA 项目。 1. 页面权限控制和登陆验证页面权限控制 页面权限控制是什么意思呢&#xff1f; 就是一个网站有不同的角色&#xff0c;比如管理员和普通用户&#xff0c;要求不同的角色能访问的页面是不一样的。如果一个页…

OpenCV | 告别人工目检:深度学习技术引领工业品缺陷检测新时代

文章目录 机器视觉缺陷检测工业上常见缺陷检测方法内容简介作者简介目录读者对象如何阅读本书获取方式 机器视觉 机器视觉是使用各种工业相机&#xff0c;结合传感器跟电气信号实现替代传统人工&#xff0c;完成对象识别、计数、测量、缺陷检测、引导定位与抓取等任务。其中工…

Vue3+Ts项目——第三方认证登录

Vue3Ts项目——第三方认证登录 下载插件main.ts文件vue页面调用方式 前言&#xff1a;我们得先去注册成为谷歌开发者&#xff0c;创建一个项目再获取id&#xff0c;整个难点就是获取ID。我难受呀。&#xff08;记得翻墙&#xff09; 下载插件 npm install vue3-google-loginma…

搭建Vue前端项目的流程

1、安装nodejs 测试安装是否成功 $ npm -v 6.14.16 $ node -v v12.22.122、全局安装npm install -g vue/cli&#xff0c;后续会使用到vue命令 $ vue --version vue/cli 5.0.8使用vue create demo_project_fe命令创建项目&#xff0c;使用箭头键来选择&#xff0c;确认使用回车…

【K8s】1# 使用kuboard-spray安装K8s集群

文章目录 搭建k8s集群1.推荐配置1.1.服务器配置1.2.软件版本 2.使用Kuboard-Spray安装k8s集群2.1.配置要求2.2.操作系统兼容性2.3.安装 Kuboard-Spray2.4.加载离线资源包2.5.规划并安装集群2.6.安装成功2.7.访问集群 3.涉及的命令3.1.linux 4.问题汇总Q1&#xff1a;启动离线集…

SSH无密登陆配置

1 SSH介绍 ssh命令用于远程登录到其他计算机&#xff0c;实现安全的远程管理。 基本语法&#xff1a; ssh 域名/IP地址 示例&#xff1a; &#xff08;1&#xff09;从hadoop100服务器上远程连接hadoop101服务器 [hadoophadoop100 ~]$ ssh hadoop101 如果出现如下内容 Ar…

【Jmeter】循环执行某个接口,接口引用的参数变量存在规律变化

变量设置成下面的值即可 ${__V(supplierId_${supplierIdNum})}

听GPT 讲Rust源代码--src/tools(21)

File: rust/src/tools/miri/src/shims/x86/mod.rs 在Rust的源代码中&#xff0c;rust/src/tools/miri/src/shims/x86/mod.rs文件的作用是为对x86平台的处理提供支持。它包含一些用于模拟硬件操作的shim函数和相关的类型定义。 具体来说&#xff0c;该文件中的函数是通过使用一组…

从零开始的Docker Desktop使用,Docker快速上手,Docker介绍和基础使用

目录 1 Docker简介和安装和基础配置1.1 Docker简介1.2 安装Docker Desktop1.3 换源1.4 Docker基础使用1.5 对Docker操作1.5.1 获取当时所有镜像(docker images)1.5.2 拉镜像(docker pull)1.5.3 删除镜像(docker rmi)1.5.4加载镜像(docker run) 1.6 使用交互式容器1.6.1 查看容器…