入坑react系列一

JSX 简介

一种JavaScript的语法扩展,推荐在react中使用jsx来描述用户界面

在jsx中使用表达式

可以任意使用js表达式,在jsx当中的表达式要包含在大括号里
jsx 本身也是一种表达式,也就是说可以在if或者for语句中使用
function getGreeting(user) {
  if (user) {
    return <h1>Hello, {formatName(user)}!</h1>;
  }
  return <h1>Hello, Stranger.</h1>;
}

jsx属性

可以使用引号来定义以字符串为值的属性
也可以使用大括号来定义以JavaScript表达式为值的属性
const elemtn = <div tabIndex="0"></div>

const element = <img src={user.avatarUrl}/>

jsx可以相互嵌套(小驼峰命名法)

jsx代表Objects

Babel 转译器会把 JSX 转换成一个名为 React.createElement() 的方法调用。

元素渲染

要将React元素渲染到根DOM节点中,我们通过把它们都传递给 ReactDOM.render() 的方法来将其渲染到页面上:

const element = <h1>Hello, world</h1>;
ReactDom.render(element,document.getElementById('root'));

更新元素渲染

function tick(){
  const element = (
    <div>
      <h1>hello,scooper!</h1>
      <h2>Time is {new Date().toLocaleTimeString()}</h2>
    </div>
   );
  ReactDOM.render(element,document.getElementById('root'));
}
setInterval(tick,1000);   //每秒钟调用一次ReactDOM.render()

React只会更新必要的部分

组件&Props

当React遇到的元素是用户自定义的组件,它会将JSX属性作为单个对象传递给该组件,这个对象称之为“props”。

const element = <Welcome name="liulian" />

组件渲染

function Welcome(props){                    //注意大写W
  return <h1>test,{props.name}</h1>
}

const element = <Welcome name="liulian" />;
ReactDOM.render(
  element,
  document.getElementById('root')
);

  1. 我们对元素调用了ReactDOM.render()方法。
  2. React将{name: ‘Sara’}作为props传入并调用Welcome组件。
  3. Welcome组件将Hello, Sara元素作为结果返回。
  4. React DOM将DOM更新为Hello, Sara。

组件名称必须以大写字母开头

组合组件

function Welcome(props){
  return <h1>Hello,{props.name}!</h1>
}

function App(){
  return(
    <div>
      <Welcome name="liulian" />
      <Welcome name="soul" />
      <Welcome name="scooper" />
    </div> 
  )
  
}
ReactDOM.render(
  <App />,
  document.getElementById('root')
);

组件的返回值只能有一个根元素,这也是用div包裹Welcome的原因

提取组件

笔记本 2019年2月14日
image

Props的只读性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值