iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >React插槽使用方法
  • 516
分享到

React插槽使用方法

2024-04-02 19:04:59 516人浏览 安东尼
摘要

目录需求 核心思想 React实现插槽的两种方式需求 我们自己写了个组件,引用组件时想要在组件中写入内容,并且写入的内容可以被组件识别、控制,用过Vue的同学肯定会立刻想到slot

需求

我们自己写了个组件,引用组件时想要在组件中写入内容,并且写入的内容可以被组件识别、控制,用过Vue的同学肯定会立刻想到slot插槽,react也支持插槽功能,下面我们用react开发一个支持插槽功能的组件。

核心思想

父组件在子组件中传入的三个div,这三个div会默认通过props传到子组件中,然后我们在子组件中控制children的渲染即可。

核心代码


// 015 使用插槽
import React  from 'react';
import ReactDOM from 'react-dom';
// 父组件
class ParentDom extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            heardData:"头部数据",
            footData:"底部数据",
            contentData:"内容数据"
        }
    }
    componentDidMount() {
    }

    render() {
        return (
            <div>
                <h1>015使用插槽</h1>
                <ChildDom >
                    <div data-position="heard" >这是头部</div>
                    <div data-position="content" >这是内容 丨{this.state.contentData}</div>
                    <div data-position="foot" >这是底部</div>
                </ChildDom>
            </div>
        )
    }
}
// 子组件
class ChildDom extends React.Component {        
    constructor(props) {
        super(props)  
    }
    render() {
        let heard,content,foot;
        this.props.children.forEach(item =>{
            if(item.props['data-position'] == 'heard'){
                heard = item
            }else if(item.props['data-position'] == 'content'){
                content = item
            }else if(item.props['data-position'] == 'foot'){
                foot = item
            }
        })  
        return (
            <div >
                <p>我是子组件</p>
               <div className="heard">
                   {heard}
               </div>
               <div className="content">
                   {content}
               </div>
               <div className="foot">
                   {foot}
               </div>
            </div>
        )
    }
}

export default function () {
    ReactDOM.render(
        <ParentDom />,
        document.querySelector("#example15")
    );
}

展示效果

React实现插槽的两种方式

由于在React组件中写的内容会被挂载到props中,以此来实现类似vue中的插槽功能

这是最外层代码


import React, { Component } from 'react'
import NavBar from './NavBar'
import NavBar2 from './NavBar2'

export default class App extends Component {
  render() {
    return (
      <div>
        <NavBar>
          <span>aaa</span>
          <strong>bbb</strong>
          <a href="/#" rel="external nofollow"  rel="external nofollow" >ccc</a>
        </NavBar>

        <NavBar2 leftslot={<span>aaa</span>}
        centerslot={<strong>bbb</strong>}
        rightslot={<a href="/#" rel="external nofollow"  rel="external nofollow" >ccc</a>}/>
      </div>
    )
  }
}

1.用this.props.children[index]


import React, { Component } from 'react'

import './style.CSS'
export default class NavBar extends Component {
  render () {
    return (
      <div className="nav-bar">
        <div className="nav-left">
          {this.props.children[0]}
        </div>
        <div className="nav-center">
          {this.props.children[1]}
        </div>
        <div className="nav-right">
          {this.props.children[2]}
        </div>
      </div>
    )
  }
}

2.用直接命名方式


import React, { Component } from 'react'

import './style.css'
export default class NavBar extends Component {
  render () {
    const {leftslot, centerslot,rightslot} = this.props
    return (
      <div className="nav-bar">
        <div className="nav-left">
          {leftslot}
        </div>
        <div className="nav-center">
          {centerslot}
        </div>
        <div className="nav-right">
          {rightslot}
        </div>
      </div>
    )
  }
}

到此这篇关于React插槽使用方法的文章就介绍到这了,更多相关React插槽内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: React插槽使用方法

本文链接: https://www.lsjlt.com/news/160200.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • React插槽使用方法
    目录需求 核心思想 React实现插槽的两种方式需求 我们自己写了个组件,引用组件时想要在组件中写入内容,并且写入的内容可以被组件识别、控制,用过Vue的同学肯定会立刻想到slot...
    99+
    2024-04-02
  • Vue默认插槽,具名插槽,作用域插槽定义及使用方法
    目录一、三种插槽的定义1.默认插槽2.具名插槽3.作用域插槽二、使用方法1.默认插槽2.具名插槽3.作用域插槽应用场景: 插槽的作用是在子组件中某个位置插入父组件的自定义html结构...
    99+
    2024-04-02
  • Vue和React的插槽怎么使用
    今天小编给大家分享一下Vue和React的插槽怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。插槽,在React中没找...
    99+
    2023-06-27
  • Vue具名插槽+作用域插槽的混合使用方法
    vue + elementui 的项目中,通过后端返回的数据动态封装表单组件。 其中有些场景: 1、有些下拉框是联动的,例如前面的一个下拉框选择值之后,后一个下拉框才根据前面的下拉框...
    99+
    2024-04-02
  • 浅谈Vue中插槽slot的使用方法
    如何定义和使用: 在组件的template中使用slot标签定义,slot标签中间可以定义默认显示值,如果slot标签没有声明name属性值,在使用插槽时将默认从第一个插槽依次往下...
    99+
    2024-04-02
  • React中怎么实现插槽
    今天小编给大家分享一下React中怎么实现插槽的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。React中实现插槽设计插槽在R...
    99+
    2023-07-05
  • Vue3中插槽(slot)的全部使用方法
    目录什么是插槽默认内容具名插槽动态插槽名作用域插槽作用域插槽具名作用域插槽写在最后 Vue中的插槽相信使用过Vue的小伙伴或多或少的都用过,但是它的所有用法你是否全部理解呢?本篇文章...
    99+
    2024-04-02
  • Vue插槽slot使用的方法是什么
    这篇文章主要介绍“Vue插槽slot使用的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue插槽slot使用的方法是什么”文章能帮助大家解决问题。何为插槽我们都知道在父子组件间可以通过v...
    99+
    2023-07-05
  • Vue.js slot插槽的作用域插槽用法详解
    目录没有插槽的情况Vue2.x 插槽有插槽的情况具名插槽没有slot属性插槽简单实例应用作用域插槽 ( 2.1.0 新增 )Vue3.x 插槽插槽作用域插槽没有插槽的情况 <...
    99+
    2024-04-02
  • React中实现插槽效果的方案详解
    目录React实现插槽children实现插槽props实现插槽React实现插槽 在开发中,我们抽取了一个组件,但是为了让这个组件具备更强的通用性,我们不能将组件中的内容限制为固定...
    99+
    2024-04-02
  • Vue插槽slot全部使用方法示例解析
    目录何为插槽示例解析插槽的基本使用具名插槽作用域插槽总结何为插槽 我们都知道在父子组件间可以通过v-bind,v-model搭配props 的方式传递值,但是我们传递的值都是以一些数...
    99+
    2023-03-19
    Vue插槽slot用法 Vue slot Vue插槽
  • Vue3插槽使用汇总
    目录一、v-slot 介绍 二、匿名插槽 三、具名插槽 四、作用域插槽 五、动态插槽名 一、v-slot 介绍 v-slot 只能用在 template 或组件上使用,否则就会报错...
    99+
    2024-04-02
  • Vue中插槽Slot基本使用与具名插槽详解
    目录一、插槽Slot1.1.插槽Slot的作用1.2.具名插槽SlotPs:作用域插槽总结一、插槽Slot 1.1.插槽Slot的作用 ⭐⭐初识插槽: 为了让这个组件具备更强的通用性...
    99+
    2022-11-13
    vue具名插槽用法 vue获取插槽 vue插槽用法
  • vue3中的render函数里定义插槽和使用插槽
    目录render函数里定义插槽和使用插槽定义插槽定义有插槽的组件使用插槽vue3 render函数小变动render函数的参数render函数签名VNode属性格式render函数里...
    99+
    2024-04-02
  • 如何使用Vue slot插槽
    这篇文章主要介绍“如何使用Vue slot插槽”,在日常操作中,相信很多人在如何使用Vue slot插槽问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Vue slot插槽”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-25
  • Vue插槽slot怎么使用
    这篇文章主要讲解了“Vue插槽slot怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue插槽slot怎么使用”吧! 一、插槽的含义 插槽 sl...
    99+
    2024-04-02
  • 浅析Vue中插槽和配置代理的使用方法
    如何正确快速使用Vue中的插槽和配置代理?下面本篇文章给大家介绍一下Vue中插槽和配置代理的使用方法,希望对大家有所帮助!一,插槽1.什么是插槽让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于父组件——>...
    99+
    2023-05-14
    配置代理 Vue 插槽
  • Vue中插槽slot的使用方法与应用场景详析
    什么是插槽? 我们知道在Vue中 Child 组件的标签 的中间是不可以包着什么的 。 可是往往在很多时候我们在使用组件的时候总想在组件间外面自定义一些标签,vue新增了一种插槽...
    99+
    2024-04-02
  • Vue3父子通讯方式及Vue3插槽的使用方法详解
    在Vue3中父子通讯方式 Vue3父传子(props) 父组件如下: <template> <div class="about"> <h1&...
    99+
    2023-01-28
    Vue3父子通讯方式 Vue3插槽的使用 Vue3组件父传子 Vue3组件子传父 Vue3组件通讯
  • React从插槽、路由、redux的详细过程
    目录1. React 插槽2. React 路由2.1 安装库2.2 ReactRouter三大组件2.3 路由其他方法2.4 重定向组件2.5 Switch组件2.6 示例3. r...
    99+
    2022-11-13
    React插槽路由 React插槽redux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作