Vue中Jsx的使用
什么是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
import AnchoredHeading from './AnchoredHeading.vue'
new Vue({
el: '#demo',
render: function (h) {
return (
<AnchoredHeading level={1}>
<span>Hello</span> world!
</AnchoredHeading>
)
}
})
我开发过程中的栗子:
1.调用
{
title: "组织机构",
resizable: true,
minWidth: 200,
align: "left",
key: "organizeName",
render: (h, params) => {
return (
<TemplateMainOrgs {...{ props: { organizeName: params.row.organizeName } }} ></TemplateMainOrgs>
)
}
},
2.定义

<template>
<Tooltip placement="top" :class="{detailClassFix:isDetailPage}">
<div class="ellipsis-2line" style="-webkit-box-orient: vertical;" v-if="orgs.length>0">
<div v-for="(org,index) in orgs" :key="index">
<p>{{org}}</p>
</div>
</div>
<div class v-else>--</div>
<div slot="content">
<div class v-if="orgs.length>0">
<div v-for="(org,index) in orgs" :key="index">
<p>{{org}}</p>
</div>
</div>
<div class v-else>--</div>
</div>
</Tooltip>
</template>
<script>
export default {
props: {
organizeName: {
type: String,
required: true,
default: '',
},
parentName: {
type: String,
required: false,
},
},
data () {
return {
}
},
computed: {
isDetailPage: function () {
return this.parentName == 'detail'
},
orgs: function () {
return this.handleName() || []
},
},
created () {
},
methods: {
handleName () {
if (this.organizeName) {
let arr = this.organizeName.split(',')
return arr.map(item => {
return item.replaceAll('*', ' > ')
})
}
}
},
}
</script>
<style lang="less" scoped>
.detailClassFix {
vertical-align: top;
.ellipsis-2line {
-webkit-line-clamp: 8;
}
}
</style>
可以看出,由于需要渲染的内容及其复杂,不易于使用render函数直接书写,因此将内容单独为一个组件,在此引入。而且抽取出来的组件也可以用在其他地方。
如何给jsx组件传值
Vue中Jsx的使用的更多相关文章
- Vue中jsx的最简单用法
最终页面显示效果为 <div class="open-service" style="color: #0199f0; cursor: pointer;"& ...
- 在vue中使用jsx语法
什么是JSX? JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解 ...
- vue中使用jsx
vue中使用jsx 为什么需要使用jsx呢?这个需要搞清楚 其实vue官方也说了,对于那些非常多v-if v-else的情况,就可以尝试使用render函数或者jsx,不过render函数写简单的结构 ...
- 在Vue中使用JSX,很easy的
摘要:JSX 是一种 Javascript 的语法扩展,JSX = Javascript + XML,即在 Javascript 里面写 XML,因为 JSX 的这个特性,所以他即具备了 Javasc ...
- vue中使用JSX报错,如何解决
Support for the experimental syntax 'jsx' isn't currently enabled (32:12): 30 | }, 31 | render() { & ...
- Vue 中渲染字符串形式的组件标签
在vue中如果要渲染字符串形式的标签,vue 提供了 v-html 指令,可以很方便的渲染出来.但是如果这个标签是一个组件,或者element-ui 的组件时,就不能解析出来了,因为v-html 只能 ...
- vue中的页面渲染方案
一.模板渲染 <div id="J_render_app"> <ul v-if="items.length"> <li v-for ...
- 理解MVVM在react、vue中的使用
理解MVVM在react.vue中的使用 一:什么是MVC.为什么不用MVC 1:MVC的含义: M(modal):是应用程序中处理数据逻辑的部分. V (view) :是应用程序中数据显示的部分. ...
- vue中如何不通过路由直接获取url中的参数
前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接 ...
随机推荐
- Java创建线程四种方式
1.继承Thread类 public class MyThread extends Thread { public MyThread() { } public void run() { for(int ...
- UVA11400 Lighting System Design(DP)
You are given the task to design a lighting system for a huge conference hall. After doing a lot of ...
- MIT 6.S081 聊聊xv6的文件系统(中)日志层与事务
前言 我本想把上篇中没讲完的剩余层全部在本篇中讲完,但没想到越写越多.日志层的代码不多,其思想和解决问题的手段也不算难以理解,但其背后涉及的原理和思想还是非常值得回味的,因此我打算用一整篇完整的blo ...
- Kubernets二进制安装(19)之集群平滑升级
在实际生产环境中,部署好的集群稳定就行了,但是,如果需要使用到新的功能或当前版本出现了严重的漏洞,都建议做升级,本教程是将node节点从v1.15.10版本平滑升级到v1.15.12版本,如果升级到相 ...
- Nginx基础 - 常用模块配置
1.Nginx状态监控http_stub_status_module记录Nginx客户端基本访问状态信息 location /mystatus { stub_status on; access_log ...
- codeforces 1037E-Trips 【构造】
题目:戳这里 题意:n个点,每天早上会在这n个点中加一条边,每天晚上最大的子图满足子图中每个点都有k条或以上的边. 解题思路:看了官方题解,先把所有的点都连上,再从最后一天往前减边,用set维护最大的 ...
- C++中的explicit
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数 ...
- codeforces 1C (非原创)
C. Ancient Berland Circus time limit per test 2 seconds memory limit per test 64 megabytes input sta ...
- mysql(四)------Mysql中的锁
1. 2 MySQL InnoDB 锁的基本类型 https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html 官网把锁分成了 8 类.所以我 ...
- 如何在 VSCODE 中高效使用 R 语言
VSCODE 配置 R 一.功能特性展示 之前一直在用 Rstudio 来编写 R,也尝试用过 Pycharm 配置 R 环境. 但是由于现在需求要同时满足 Python,R 和网站要同时开发,为了避 ...