Vue中jsx的最简单用法
前端 / 管理员 发布于 6年前 265
什么是jsX?
jsX就是JavaScript和XML结合的一种格式。react发明了JSX,利用html语法来创建虚拟DOM。当遇到<,JSX就当html解析,遇到{就当JavaScript解析.
最开始是因为近期在学习react,在里面体验了一把jsx语法,发现也并没有别人说的很难受的感觉啊,于是就想尝试在vue中也试下,Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML。然而在一些场景中,你真的需要 JavaScript 的完全编程的能力,就需要使用 render 函数,它比 template 更接近编译器。
最终页面显示效果为
<div class="open-service" style="color: #0199f0; cursor: pointer;"> hello <p>world</p></div>
主页面
parent.vue
<template> <div class="hello"> <vue-test :typeSpan="typeSpan"></vue-test> </div></template><script type="text/jsx"> import VueTest from "./jsx/VueTest";export default { name: 'HelloWorld', components:{ VueTest, }, computed:{ typeSpan(){ return { text:'hello', attrs:{ class:"open-service", style:'color:#0199f0;cursor:pointer' }, } } },}</script>
子页面child.vue有两种方法
第一种
<script type="text/jsx">export default { props: { typeSpan:{ type:Object, default:{} } }, created(){ }, methods:{ openContactService(){ alert(1) }, }, render(createElement) { return( <div class={this.typeSpan.attrs.class} style={this.typeSpan.attrs.style} onClick={this.openContactService}> {this.typeSpan.text} <p >world</p> </div> ) }}</script>
第二种
<script type="text/jsx">export default { props:{ typeSpan:{ type:Object, default:{} } }, methods:{ openContactService(){ alert(1) } }, render(createElement, context) { return createElement( 'div',{ class:this.typeSpan.attrs.class, style:this.typeSpan.attrs.style, on:{ click:this.openContactService } },[ this.typeSpan.text, createElement('p','world'), ] ) }}</script>
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号