jsx语法了解

简介

jsx是javascript的一种语法扩展,主要用于在React中定义和渲染用户界面。它允许开发者在js代码中编写html的代码。

语法特点

插值表达式
在template中使用{{}},jsx中使用{}
<div>{ name }</div>
v-html指令
通过变量的形式书写html结构
const htmlStr = <span>hello</span>
<div>{ htmlStr }</div>
条件渲染if...else
const ifRender = (val) => {
	if (val === 1) {
		return <div class="success">是</div>
	} else {
		return <div class="error">否</div>
	}
}
&&运算符
{ isError && <div>校验失败</div> }
{ !isError && <div>校验成功</div> }
||运算符

可以渲染出计算后的html结构

const dom1 = <h1>1111</h1>
const dom2 = <h1>2222</h1>
<div>{ dom1 || dom2 }</div>
三目运算符
<div>{ isShowDom1 ? dom1 : dom2 } </div>
列表渲染
<div class="listWrap">
 {
   dataList.map(item => (<div class="listItem" key={ item.id }>{ item.name }</div>)) 
	
 }
</div>
事件绑定
on+事件名称,建议驼峰法
<button onClick={ clickFn }></button>

使用修饰符【.stop,.prevent】等时
<button onClick={withModifiers(clickFn, ['prevent'])}></button>

传递参数时需要使用箭头函数,不能像在template中使用clickFn(params),会当成调用
<button onClick={ (params) => clickFn(params)}></button>
双向绑定v-model
<CustomComp v-model={searchInput} />

自定义名称绑定
<CustomComp v-model={[searchInput, 'customTitle']} />
插槽slot
<div v-slots={ { slotName: <span>1111</span> } }></div>
v-bind场景
const imgSrc = ''
<img src={imgSrc} />

应用示例

html代码:
<component :is="statusRender" v-bind="{ status: 1 }" />

jsx代码
const statusRender = (param: any) => {
  if (param.status === 1) {
    return <div>通过</div>
  } else {
    return <div>拒绝</div>
  }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值