什么是JSX?

JSX就是Javascript和XML结合的一种格式。React发明了JSX,利用HTML语法来创建虚拟DOM。当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析。

应用场景是什么?

当需要用render函数写一个复杂的组件时,可以考虑使用jsx的方式。让代码结构简单,降低开发难度,提升易读性。

举个栗子

vue.js官网demo:https://cn.vuejs.org/v2/guide/render-function.html#JSX

  1. import AnchoredHeading from './AnchoredHeading.vue'
  2.  
  3. new Vue({
  4. el: '#demo',
  5. render: function (h) {
  6. return (
  7. <AnchoredHeading level={1}>
  8. <span>Hello</span> world!
  9. </AnchoredHeading>
  10. )
  11. }
  12. })

我开发过程中的栗子:

1.调用

  1. {
  2. title: "组织机构",
  3. resizable: true,
  4. minWidth: 200,
  5. align: "left",
  6. key: "organizeName",
  7. render: (h, params) => {
  8. return (
  9. <TemplateMainOrgs {...{ props: { organizeName: params.row.organizeName } }} ></TemplateMainOrgs>
  10. )
  11. }
  12. },

2.定义

  1. <template>
  2. <Tooltip placement="top" :class="{detailClassFix:isDetailPage}">
  3. <div class="ellipsis-2line" style="-webkit-box-orient: vertical;" v-if="orgs.length>0">
  4. <div v-for="(org,index) in orgs" :key="index">
  5. <p>{{org}}</p>
  6. </div>
  7. </div>
  8. <div class v-else>--</div>
  9. <div slot="content">
  10. <div class v-if="orgs.length>0">
  11. <div v-for="(org,index) in orgs" :key="index">
  12. <p>{{org}}</p>
  13. </div>
  14. </div>
  15. <div class v-else>--</div>
  16. </div>
  17. </Tooltip>
  18. </template>
  19. <script>
  20. export default {
  21. props: {
  22. organizeName: {
  23. type: String,
  24. required: true,
  25. default: '',
  26. },
  27. parentName: {
  28. type: String,
  29. required: false,
  30. },
  31. },
  32. data () {
  33. return {
  34. }
  35. },
  36. computed: {
  37. isDetailPage: function () {
  38. return this.parentName == 'detail'
  39. },
  40. orgs: function () {
  41. return this.handleName() || []
  42. },
  43. },
  44. created () {
  45. },
  46. methods: {
  47. handleName () {
  48. if (this.organizeName) {
  49. let arr = this.organizeName.split(',')
  50. return arr.map(item => {
  51. return item.replaceAll('*', ' > ')
  52. })
  53. }
  54. }
  55. },
  56. }
  57. </script>
  58. <style lang="less" scoped>
  59. .detailClassFix {
  60. vertical-align: top;
  61. .ellipsis-2line {
  62. -webkit-line-clamp: 8;
  63. }
  64. }
  65. </style>

可以看出,由于需要渲染的内容及其复杂,不易于使用render函数直接书写,因此将内容单独为一个组件,在此引入。而且抽取出来的组件也可以用在其他地方。

如何给jsx组件传值

vueJsx readerme

Vue中Jsx的使用的更多相关文章

  1. Vue中jsx的最简单用法

    最终页面显示效果为 <div class="open-service" style="color: #0199f0; cursor: pointer;"& ...

  2. 在vue中使用jsx语法

    什么是JSX? JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解 ...

  3. vue中使用jsx

    vue中使用jsx 为什么需要使用jsx呢?这个需要搞清楚 其实vue官方也说了,对于那些非常多v-if v-else的情况,就可以尝试使用render函数或者jsx,不过render函数写简单的结构 ...

  4. 在Vue中使用JSX,很easy的

    摘要:JSX 是一种 Javascript 的语法扩展,JSX = Javascript + XML,即在 Javascript 里面写 XML,因为 JSX 的这个特性,所以他即具备了 Javasc ...

  5. vue中使用JSX报错,如何解决

    Support for the experimental syntax 'jsx' isn't currently enabled (32:12): 30 | }, 31 | render() { & ...

  6. Vue 中渲染字符串形式的组件标签

    在vue中如果要渲染字符串形式的标签,vue 提供了 v-html 指令,可以很方便的渲染出来.但是如果这个标签是一个组件,或者element-ui 的组件时,就不能解析出来了,因为v-html 只能 ...

  7. vue中的页面渲染方案

    一.模板渲染 <div id="J_render_app"> <ul v-if="items.length"> <li v-for ...

  8. 理解MVVM在react、vue中的使用

    理解MVVM在react.vue中的使用 一:什么是MVC.为什么不用MVC 1:MVC的含义: M(modal):是应用程序中处理数据逻辑的部分. V (view)  :是应用程序中数据显示的部分. ...

  9. vue中如何不通过路由直接获取url中的参数

    前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接 ...

随机推荐

  1. 答疑解惑之ExecutorService——shutdown方法和awaitTermination方法使用

    ExecutorService的关闭 shutdown和awaitTermination为接口ExecutorService定义的两个方法,一般情况配合使用来关闭线程池. shutdownnow和它的 ...

  2. Linux下安装MySQL及远程连接MySQL

    安装方式一:通过下载官方安装包安装 由于Linux安装MySQL会遇到各种依赖问题,本博文整理了下安装方放,避免遇到依赖问题 查看是否自带mariadbrpm -qa|grep mariadb然后卸载 ...

  3. A - 规律题

    我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示. Input输 ...

  4. 2019牛客暑期多校训练营(第十场)B-Coffee Chicken

    >传送门< 题意:S(1)="COFFEE",S(2)="CHICKEN" ,S(n) = S(n−2)+S(n−1),请输出 S(n) 中从第 k ...

  5. Codeforces Round #673 (Div. 2) A. Copy-paste(贪心)

    题目链接:https://codeforces.com/contest/1417/problem/A 题意 给出一个大小为 $n$ 的数组 $a$,每次操作可以选择两个数,然后将一个数加到另一个数上, ...

  6. HDU4622 Reincarnation【SAM】

    HDU4622 Reincarnation 给出一个串,每次询问其一个子串有多少不同的子串 按每个后缀建立\(SAM\)不断往后加字符,然后记录答案,查询的时候直接用即可 //#pragma GCC ...

  7. poj2926Requirements (曼哈顿距离)

    Description An undergraduate student, realizing that he needs to do research to improve his chances ...

  8. [Golang]-4 错误处理、Panic、Defer

    目录 错误和异常 案例 Panic Defer 使用 defer+recover 来处理错误 参考文章: Go 语言使用一个独立的·明确的返回值来传递错误信息的.这与使用异常的 Java 和 Ruby ...

  9. mysql+python+pymysql的一些细节问题

    报错 (1044, "Access denied for user 'erio'@'localhost' to database 'library'") 就是权限问题了,没什么好说 ...

  10. C# 特殊符号

    特殊符号 @开头 前面提到过,字符串里免转义用的, 字符串里写的啥就是啥,遇到\ 不转义 ?? 判断一个值是不是null,是的话就变成后面的默认值,不是的话就还是原值 $开头 字符串篡改 和forma ...