美文网首页
React如何动态更改html标签

React如何动态更改html标签

作者: _hider | 来源:发表于2019-09-27 15:44 被阅读0次

比如有这样的一个需求,子组件通过父组件传递过来的props,来动态显示<h1><h6>标签,可以先不管react,考虑下vue如何实现呢?

Vue的实现方式

父组件

<template>
    <div>
        <Son :tagSize="1"/>
    </div>
</template>

<script>
import Son from '../components/Son';
export default {
    name: "Father",
    components:{
        Son
    }
};
</script>

子组件

<template>
    <div>
        <h1 v-if="tagSize === 1">测试</h1>
        <h2 v-else-if="tagSize === 2">测试</h2>
        <h3 v-else-if="tagSize === 3">测试</h3>
        <h4 v-else-if="tagSize === 4">测试</h4>
        <h5 v-else-if="tagSize === 5">测试</h5>
        <h6 v-else>测试</h6>
    </div>
</template>

<script>
export default {
    name: "Son",
    props: {
        tagSize: {
            type:Number,
            default:1
        }
    }
};
</script>

vue的模板语法我们也是可以实现以上的需求,但是因为不能动态html标签显得不是很灵活,可以想象下,如果可以修改标签,直接通过标签拼接的方式,举例"<h"+tagSize+">测试</h"+tagSize+">"的方式,以这种方式来处理这种需求的话明显非常方便,废话不多说,来看看react的实现方式。

React的实现方式

父组件

import React from 'react';
import Child from './Child.js';

class Father extends React.Component{
    render(){
        return (
            <React.Fragment>
                <Child size = { 1 }/>
            </React.Fragment>
        )
    }
}
export default Father;

子组件

import React from 'react';

const Child = (props)=>{
    let MarkUp = `h${props.size}`;
    return (
        <React.Fragment>
            <MarkUp>你好</MarkUp>
        </React.Fragment>
    )
}

export default Child;

相比较两种方式会发现react实现这类需求会更合适,react语法采用JSX语法,个人感觉语法比vuetemplate模板语法更加灵活,不过Vue现在也已经支持JSX

相关文章

  • React如何动态更改html标签

    比如有这样的一个需求,子组件通过父组件传递过来的props,来动态显示 到 标签,可以先不管react,考虑下vu...

  • javascript 动态修改css样式方法汇总(四种方法)

    为了达到某种特殊的效果我们需要用Javascript动态的去更改某一个标签的Css属性,如何动态修改css样式呢?...

  • 如何在HTML中使用React

    如何在html中使用React,也就是在静态html中如何使用react的CND并且使用React。引入方式:在H...

  • loading data dynamically and as

    .py .html .js 异步加载数据,动态追加元素到页面,动态生成html标签中的内容。好处:It just ...

  • 关于jquery的append()和html()使用

    在js里动态更改html内容时经常会用到append()/appendTo()和html()方法。在此记录下使用区...

  • 表单

    HTML的form标签在react和其他标签有一些不同,因为form标签内部有一些状态性的东西,比如下面的HTML...

  • ReactJS基础学习-02

    React 组件 React 允许将代码封装成组件(component),然后像插入普通 HTML 标签一样,在网...

  • js-屏幕自适应rem

    // 根据屏幕的宽度动态设置html标签的fontsize function setHTML() { // ...

  • vue 动态更改标签的属性

    el-table 组件里设置height,在门户页里生成滚动条,在其自己的页面里不生成滚动条。

  • react官网学习记录

    react使用来创建用户界面的JS库,react被认为是MVC中的V层。react是安全的,不生成html标签,自...

网友评论

      本文标题:React如何动态更改html标签

      本文链接:https://www.haomeiwen.com/subject/nrieyctx.html