×

分享React基础知识:react中定义变量并使用方式

作者:Sanakey2023.02.14来源:Web前端之家浏览:7168评论:0
关键词:React

今天我们了解下react中定义变量并使用方式。

  • React Native中的全局作用域是变量global.例如:as global.foo = foo,那么您可以在任何地方使用global.foo作为全局变量.

    全局作用域可用于存储全局配置或类似内容.在不同的视图之间共享变量,根据您的描述,您可以选择许多其他解决方案(使用redux,flux或将它们存储在更高的组件中),全局范围不是一个很好的选择.

    定义全局变量的一个好习惯是使用js文件.例如global.js 

    global.foo = foo;
    global.bar = bar;

    然后,确保在项目初始化时执行它.例如,将文件导入index.js:

    import './global.js'
    // other code

总结下,这里面涉及到了

  • 1、变量如何定义

  • 2、变量如何进行改变

  • 3、方法如何调用

都写有详细的注释大家可详细观看适合刚学习react的新同学。

class Packaging extends React.Component{ // react 类组件
    constructor(props) {
        super(props);
        this.state = {
          // 进行变量定义(会vue的同学:这个地方就相当于 data 的return里所定义的)
          // 例如
          name:'定义name'
        };
        this.getNameData();// 调用方法
    }
    // 定义方法-写这个方法是为了给大家操作一下怎么改变定义的数据
    getNameData() {
        http.get('接口名称').then(res => {
        	// 第一种
            this.setState({ //  使用this.setState来进行改变变量
                name: res.data.name
            });
            console.log(this.state.dataObj) // 打印不到的
            // 第二种
            this.setState({
		       name: res.data.name
		    },() => {
		      console.log(this.state.dataObj) // 可以打印到
		    })
        }).catch(error => {
            console.error(error)
        })
    }
    render() {
        return  <div className="className">// className定义div的class名称
        			{this.state.name}
        		</div>
    }
}

react全局变量的设置

新建一个 util文件夾 ---> tool.jsx

window._= {
        /**
         * 存储localStorage
         */
        setStore:(name, content) =>{
            if (!name) return;
            if (typeof content !== 'string') {
                content = JSON.stringify(content);
            }
            window.localStorage.setItem(name, content);
        },
        /**
         * 获取localStorage
         */
        getStore:(name) => {
            if (!name) return;
            return window.localStorage.getItem(name);
        },
        /**
         * 清除localStorage
         */
        clearStore:() => {
            window.localStorage.clear();
        },
        
        getQueryStringByName: function (name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
            var r = window.location.search.substr(1).match(reg);
            var context = "";
            if (r != null)
                context = r[2];
            reg = null;
            r = null;
            return context == null || context == "" || context == "undefined" ? "" : context;
        }
    
}

在入口文件app.jsx里面引入

import  "util/tool.jsx";

然后在其余的组件里面就可以访问到这个变量对象。

您的支持是我们创作的动力!
温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/react20230214a.html

网友评论文明上网理性发言 已有0人参与

发表评论: