React碰到v-if的示例分析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关React碰到v-if的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码:import React from 'react'c
千家信息网最后更新 2025年11月07日React碰到v-if的示例分析
这篇文章将为大家详细讲解有关React碰到v-if的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
代码:
import React from 'react'const App = () => { const record = { toKe: true, // 贝壳首页 toSecondHand: true, // 二手房 toFang: true, // 新房 } return ( )}export default App如上述代码,我们在项目中会遇到很多这样的写法, 细看一下没什么问题,可是当在重构老项目的时候,你会发现这个代码结构是多么痛苦,特别是如下的结构。
{ record.toFang && record.toKe && record.toSecondHand && }虽然代码逻辑没问题,但人生就是这样,有时候出场顺序真的很重要。突然就想起vue的v-if了。
没错,回归主题,就是:react中模拟vue的v-if
先上代码
import React from 'react'import Hidden from './Hidden'const App = () => { const record = { toKe: true, // 贝壳首页 toSecondHand: true, // 二手房 toFang: true, // 新房 } return ( )}export default App简单就是封装Hidden组件,通过visible去控制是否渲染。
相信聪明的你一定知道怎么去封装Hidden
笔者刚开始是这么写的
import React, { Component } from 'react'export default class Hidden extends Component { render() { const { visible, children } = this.props const content = visible ? children : null return ( { content } ) }}如此简单,但笔者审查元素的时候发现,每个Hidden下的children莫名被嵌套了一层div
如下
原来的横着排列的元素,一下子竖着排列了。这可不太好,本来给我套个div,我都可以勉强接收,现在连我布局都给我变了。
怎么办?笔者突然想到使用vue-router中的router-link时,标签是可以通过tag去替换默认标签的。
那我们再给它个tag呗,连带自定义属性。
import React, { Component } from 'react'export default class Hidden extends Component { render() { const { visible, children, tag = 'div', ...rest } = this.props const content = visible ? children : null return ( React.createElement(tag, rest, content) ) // return ( // 尝试用这种方法去实现,发现不符合react的规则,所以使用最原始的渲染方法 // React.createElement // `<`${tag}`>` + { content } + ``${tag}`>` // ) }}问题:笔者的初衷是模拟vue的v-if, 所以对传入的children并没做太多处理,不建议做多做封装。有兴趣的同学可以自己玩。
{ record.toFang && record.toKe && record.toSecondHand && 贝壳首页 二手房 新房 } a href="https://bj.ke.com" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >贝壳首页 二手房 新房 其实感觉也没多大用处hhhh
关于"React碰到v-if的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
二手房
新房
贝壳
首页
代码
笔者
就是
篇文章
问题
封装
示例
分析
元素
写法
方法
时候
更多
标签
结构
项目
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术基础是学什么
软件开发集成环境搭建
excel使用ac数据库
ipv6 ftp服务器
解压软件开发
数据库人脸比对
在哪里看服务器登录过的记录
怎么维护网络服务器的安全
默纳克没有服务器如何清理故障
网络安全现状分析图表
2019国家网络安全日
财务金额数据库
嘉兴企业软件开发培训
2021年网络安全教育知识竞赛
哪些方面会运用到数据库
经济与社会发展数据库
黑魂3服务器bug修好没
金融数据库推荐
网络安全法律实施顺序
日制大专计算机网络技术学什么
gg平台与服务器
地铁网络安全等级保护
iPhone网络安全密钥
网络安全第一季度会议
学校网络安全排查情况汇报表
网络技术计划的特点
哈库玛市服务器
崇明区信息网络技术口碑推荐
效果图软件开发
dns服务器ip 西南科技大学