002 jsx使用方式-插值表达式

本文介绍了React初学者必备的JSX基本语法,包括创建根节点、插值表达式、渲染数组、修改标签属性与CSS样式。通过实例演示了如何在jsx中使用这些技巧,并展示了引入外部js和处理非HTML内容的方法。
摘要由CSDN通过智能技术生成

Jsx的基本语法:

<!DOCTYPE html>
<html>
<head>
    <title>React初次使用</title>
    <!-- 引入react,这是dev开发环境的 -->
    <script src="./node_modules/react/umd/react.development.js"></script>
    <!-- 引入react-dom,选择dev开发环境的 -->
    <script src="./node_modules/react-dom/umd/react-dom.development.js"></script>
    <!-- 引入bable -->
    <script src="./node_modules/babel-standalone/babel.min.js"></script>
</head>

<body>
    <!-- 创建根节点,每个页面都需要有根节点 -->
    <div id="app"></div>
    <!-- 注意type="text/babel" 否则无法起到babel的翻译功能 -->
    <script type="text/babel">
        let dom =   
                <h1>
                    {/*我是jsx注释语法*/}
                    {/*在jsx里多个标签需要一个父标签包起来*/}
                    <span>hello world</span><br/>
                    <span>你好世界</span>
                </h1>;
        //渲染到根节点上
        ReactDOM.render(dom,document.getElementById("app"));
    </script>
</body>
</html>

Jsx使用插值表达式:

<body>
    <div id="app"></div>
    <!-- 注意type="text/babel" 否则无法起到babel的翻译功能 -->
    <script type="text/babel">
        let user = {
            name: "黑白大彩电",
            age: 21
        };
        function sout(user) {
            return user.name + (user.age + 2) + "岁";
        }
        //在jsx里使用插值表达式
        let dom =
            <h1>
                <span>{user.name}{user.age}岁</span><br />
                <span>{user.name}{user.age + 1}岁</span><br />
                <span>{sout(user)}</span>
            </h1>;
        //渲染到根节点上
        ReactDOM.render(dom, document.getElementById("app"));
    </script>
</body>

当js没写在html内时,如图所示html和js在同级目录,引入js时需要写入type="text/babel",否则一样把jsx翻译成js。

<!DOCTYPE html>
<html>
<head>
    <title>React初次使用</title>
    <!-- 引入react,这是dev开发环境的 -->
    <script src="./node_modules/react/umd/react.development.js"></script>
    <!-- 引入react-dom,选择dev开发环境的 -->
    <script src="./node_modules/react-dom/umd/react-dom.development.js"></script>
    <!-- 引入bable -->
    <script src="./node_modules/babel-standalone/babel.min.js"></script>
</head>
<body>
    <div id="app"></div>
    <!-- 引入外部js,注意type="text/babel" 否则无法起到babel的翻译功能 -->
    <script type="text/babel" src="./jsx.js"></script>
</body>
</html>

也可以渲染数组:

<body>
    <div id="app"></div>
    <!-- 注意type="text/babel" 否则无法起到babel的翻译功能 -->
    <script type="text/babel">
        let list = [
            <p>新闻列表1</p>,
            <p>新闻列表2</p>,
            <p>新闻列表3</p>,
            <p>新闻列表4</p>,
            <p>新闻列表5</p>,
            <p>新闻列表6</p>
        ];
        //渲染数组
        //渲染到根节点上
        ReactDOM.render(list, document.getElementById("app"));
    </script>
</body>

Jsx修改标签属性和css样式

<body>
    <style>
        .myStyle {
            color: deeppink;
        }
    </style>
    <div id="app"></div>
    <!-- 注意type="text/babel" 否则无法起到babel的翻译功能 -->
    <script type="text/babel">
        let baidu = "https://www.baidu.com";
        let myCss = { color: "red" }
        let dom =
            <div >
                {/*标签属性设置*/}
                <a href={baidu}>点我去百度</a>;
                {/*内敛样式*/}
                <p style={myCss}>内联样式哦</p>
                {/*外联样式*/}
                <p className="myStyle">由于class是js的关键字,所以css的class用className代替</p>
            </div>;
        //渲染到根节点上
        ReactDOM.render(dom, document.getElementById("app"));
    </script>
</body>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值