当公司要求你必须会 React,Vueer 不得不学

前言

作为一个重度 Vue 使用者,在学习使用React时难免有些不适应,甚至有点急躁。

但时事变迁,现在不学 React,找工作真的很难呀。

所以纵使 React 再不好学,也要熟练运用它。

毕竟编程就是这样,有些语言可能不太好理解,不过既然你不是框架开发者,只能适应它。

思想方面

学 React 的时候,就先把 Vue 给忘掉。

不要急,慢慢来。

正文

如果看不懂,可以跳着看,先把能看懂的吸收掉。

渲染 HTML 字符串

function Test() {return (<><p dangerouslySetInnerHTML={
  { __html: '<i style="color:red;">123</i>' }} /></>)
} 

条件渲染、列表渲染

不像 Vue 有 v-if、v-for 指令,React 直接使用 js。

React 会自动将数组展开渲染。

export function Login(props: any) {const [show, setShow] = useState(false)const [list, setList] = useState(['小梅', '小军', '小强'])return (<>{show ? '显示的文本' : '隐藏的文本'}<br />{list}</>);
} 

事件

传递函数。在下面的例子中,点击父组件按钮和Test组件按钮都会打印点我了

如果需要传参,,请用箭头函数。。

这是个父组件:

export function Login(props: any) {function handleClick() {console.log('点我了');}return (<><button onClick={handleClick}>父组件</button><Test xx={handleClick} /></>);
} 

这是个子组件:

export function Test(props: any) {return <button onClick={props.xx}>Test组件</button>
} 

受控组件

使用 state 来控制表单的输入显示。

class MyComponent extends React.Component{state = {inputVal: 'input'}handleInput = e => {this.setState({inputVal: e.target.value})}render() {return (<><p>{this.state.inputVal}</p><input type="text" value={this.state.inputVal} onInput={this.handleInput} /></>)}
} 

非受控组件

表单的输入显示不受 state 控制。而是取得表单元素的 dom,来获取或设置它们的值。

import { useRef } from "react";

export function Login(props: any) {const nameInput = useRef<HTMLInputElement>(null)function handleClick() {console.log(nameInput.current?.value);}return (<>姓名:<input ref={nameInput} type="text" /><br /><button onClick={handleClick}>提交</button></>);
} 

父子组件通信

父向子传递数据,通过 prop 传。子向父传递数据,也是给子传递一个函数,子调用函数来传递修改父的数据。

父组件

// 父组件
class MyComponent extends React.Component{state = {count: 99}render() {return (<div><ChildComponent count={this.state.count} changeCount={this.changeCount} /></div>)}// 接收子组件传递的count来修改自身的countchangeCount = count => {this.setState({count})}
} 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值