详解Vue如何支持JSX语法


Posted in Javascript onNovember 10, 2017

通常开发vue我们使用的是模板语法,其实还有和react相同的语法,那就是render函数,同样支持jsx语法。

Vue 的模板实际是编译成了 render 函数。

1.传统的createElement方法

createElement(
 'anchored-heading', {
  props: {
   level: 1
  }
 }, [
  createElement('span', 'Hello'),
  ' world!'
 ]
)

渲染成下面这样

<anchored-heading :level="1">
<span>Hello</span> world!
</anchored-heading>

2.使用jsx语法

这就是会用到一个Babel plugin 插件,用于在 Vue 中使用 JSX 语法的原因,它可以让我们回到于更接近模板的语法上。

1.安装

npm install\
 babel-plugin-syntax-jsx\
 babel-plugin-transform-vue-jsx\
 babel-helper-vue-jsx-merge-props\
 babel-preset-es2015\
 --save-dev

2.编辑.babelrc文件

{
"presets": ["es2015"],
"plugins": ["transform-vue-jsx"]
}

代码编辑如下

Vue.component('jsx-example', {
 render (h) { // <-- h must be in scope
  return <div id="foo">bar</div>
 }
})

将 h 作为 createElement 的别名是 Vue 生态系统中的一个通用惯例,实际上也是 JSX 所要求的,如果在作用域中 h 失去作用, 在应用中会触发报错。

官网说明文档:https://cn.vuejs.org/v2/guide/render-function.html#JSX

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Firefox window.close()的使用注意事项
Apr 11 Javascript
js 判断脚本加载完毕的代码
Jul 13 Javascript
js去空格技巧分别去字符串前后、左右空格
Oct 21 Javascript
js常用自定义公共函数汇总
Jan 15 Javascript
JavaScript获取DOM元素的11种方法总结
Apr 25 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
JS生成和下载二维码的代码
Dec 07 Javascript
微信小程序自定义组件实现tabs选项卡功能
Jul 14 Javascript
JS控制GIF图片的停止与显示
Oct 24 Javascript
jQuery实现二级导航菜单的示例
Sep 30 jQuery
详解VUE中的插值( Interpolation)语法
Oct 18 Javascript
Web应用开发TypeScript使用详解
May 25 Javascript
微信小程序异步处理详解
Nov 10 #Javascript
微信小程序实现选项卡功能
Jun 19 #Javascript
微信小程序实现多宫格抽奖活动
Apr 15 #Javascript
十分钟带你快速了解React16新特性
Nov 10 #Javascript
JS实现移动端整屏滑动的实例代码
Nov 10 #Javascript
Three.js加载外部模型的教程详解
Nov 10 #Javascript
vue2导航根据路由传值,而改变导航内容的实例
Nov 10 #Javascript
You might like
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
php compact 通过变量创建数组
2016/11/15 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
js loading加载效果实现代码
2009/11/24 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
深入浅析python的第三方库pandas
2020/02/13 Python
在python中求分布函数相关的包实例
2020/04/15 Python
基于PyTorch中view的用法说明
2021/03/03 Python
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
中级会计职业生涯规划书
2014/03/01 职场文书
冬季安全检查方案
2014/05/23 职场文书
品牌服务方案
2014/06/03 职场文书
奶茶店创业计划书
2014/08/14 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
违纪检讨书范文
2015/01/27 职场文书
微观世界观后感
2015/06/10 职场文书
关于保护环境的建议书
2019/06/24 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
php修改word的实例方法
2021/11/17 PHP