详解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 相关文章推荐
JavaScript语法着色引擎(demo及打包文件下载)
Jun 13 Javascript
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
js的隐含参数(arguments,callee,caller)使用方法
Jan 28 Javascript
jquery的trigger和triggerHandler的区别示例介绍
Apr 20 Javascript
判断iframe里的页面是否加载完成
Jun 06 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
微信小程序授权获取用户详细信息openid的实例详解
Sep 20 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
js实现录音上传功能
Nov 22 Javascript
JQuery中的常用事件、对象属性与使用方法分析
Dec 23 jQuery
小程序中使用css var变量(使js可以动态设置css样式属性)
Mar 31 Javascript
js实现翻牌小游戏
Jul 31 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
两款万能的php分页类
2015/11/12 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
2019/05/29 PHP
php中错误处理操作实例分析
2019/08/23 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
浅谈js的异步执行
2016/10/18 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
Python实现多线程的两种方式分析
2018/08/29 Python
NumPy 数组使用大全
2019/04/25 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Python grpc超时机制代码示例
2020/09/14 Python
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
怎样声明接口
2014/09/19 面试题
英语专业个人求职自荐信
2013/09/21 职场文书
给排水工程师岗位职责
2013/11/21 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书