• 作者:老汪软件技巧
  • 发表时间:2024-10-06 21:01
  • 浏览量:

前言

React是由FackBook开发并于2013年开源的一种用于构建用户界面的JavaScript库.自其开源以来,React已经成为了最流行的前端库之一,对于开发者而言掌握React是一项非常有价值的技能,在本文中将会带领小白进入React的世界!.

React基础语法

创建一个react项目,我们可以通过使用vite构建工具来帮助我们快速构建

npm init vite

创建完之后,我们可以看到main.jsx文件(jsx表示 js + xml 表示直接把html写在js中)

App.jsx文件被当做子组件引入,并展示在一个id为root的DOM节点上.这里的import ReactDOM from 'react-dom/client'导入了一个特定的模块,这个模块提供了创建根渲染器的方法createRoot,这个方法用于创建一个渲染器实例,这个渲染器可以用来渲染React组件到DOM.

我们来到App.jsx中,清除原有的代码.对于React开发,其本质就是在写js代码,所以学好react就要熟练掌握js.

先创建好代码框架

function App(){
  return (
    
  )
}
export default App

第一个,我们如何在react使用自己创建的变量.比如我在函数App外面创建变量const name = '张三'.在vue中我们是使用两个花括号{{name}}的对吧,然后我们再react中则是使用一个花括号.

第二个,假设我们有一个数组,我们如何一一在页面打印这个数组的内容.

既然写react就是在写js,所以想要打印数组的内容,我们可以直接循环遍历出来就好了.

第三个,如何使用条件语句,在react中条件语句只能写三元运算符或者逻辑运算符,if就无法使用了.

第四个,在react中css样式怎么写,在react中我们类名,就不能使用class了,而是使用className,且样式要写内联样式

如果给整个title,添加样式的话,我们就需要引入外部的css文件,给整个title添加样式

第五个,如何绑定事件,就好比最常见的一个点击事件,我们都知道直接使用onclick,但是在react中是将这个c给大写了onClick,我们可以看到点击按钮后打印了clicked

我们都知道,在每一个事件都会存在一个事件参数,那么如果我们同时传入事件参数以及一个变量,会如何呢?我们会发现我们都不用点击就会直接触发了,且打印的结果不是我们期望的那样,此时我们就需要借助回调函数来辅助我们,解决这个问题.

回调函数将事件参数e,传给handlerClick,{handlerClick(e,100)}}>click me

前端快速入门_前端入门视频教程_

React子组件的写法

在react中,写子组件就是写一个函数.有两种方法可以写子组件,第一种就是常规的写函数

第二种则是,创建一个类,让这个类去继承,我们引入的React中的React.Component

那么如何使用子组件,使用子组件的话,也就是直接当做一个标签来使用.

还有一个小问题就是react只允许存在一个父节点

这里两个div都是各自的父节点,但是这样是不可以的,所以为了解决这个问题,我们可以使用幽灵节点解决这个问题,所谓的幽灵节点也就是添加一个这个节点不会被渲染.

组件传值

子组件给父组件传值就跟vue的方式差不多,直接通过标签传给子组件

那么在子组件这个函数体中就会接受一个参数props,它里面会包含父组件给子组件传过去的值.所以在子组件中,我们可以之间通过props获取到父组件给子组件传的值.

那么子组件如何给父组件传值呢?父组件会先给子组件一个篮子,那么子组件如果想要父组件传值,那么就向这个篮子里放,然后父组件向篮子里面取就好了.

这里我们创建了一个篮子

const getDataFromSon = (data)=>{
        console.log(data);
        Setmsg(data)
    }

然后把篮子给到子组件

那么我们在子组件中就是将我们要给的值给到这个函数就好了.

function  Son(props){
    // console.log(props);
    const msg = '子组件的数据'
    return (
        <div>
            <p>子组件--{props.num}p>
            <button onClick={()=>{props.foo(msg)}}>发送给父组件button>
        div>
    )
}

这里我们将msg设置成了响应式数据,通过引入useState

 const [msg,Setmsg] = useState()

useState这个函数返回的一定是一个数组,第一个值是响应式数据,第二个值是一个用于修改响应式数据的函数.

文章到这里也就告一段落了,希望对各位有所帮助,感谢大家阅读!!