详解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 数组的 uniq 方法
Jan 23 Javascript
理解 JavaScript 预解析
Oct 25 Javascript
jQuery的一些特性和用法整理小结
Jan 13 Javascript
javascript深入理解js闭包
Jul 03 Javascript
jquery解析XML字符串和XML文件的方法说明
Feb 21 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
利用vue+elementUI实现部分引入组件的方法详解
Nov 22 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
使用vue开发移动端管理后台的注意事项
Mar 07 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
Sep 02 Javascript
Servlet返回的数据js解析2种方法
Dec 12 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
优化PHP代码的53条建议
2008/03/27 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
PHP单例模式详细介绍
2015/07/01 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
python list转dict示例分享
2014/01/28 Python
Python验证码识别的方法
2015/07/10 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
零基础小白多久能学会python
2020/06/22 Python
Python如何读写二进制数组数据
2020/08/01 Python
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
委托协议书范本
2014/04/22 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
我爱我校演讲稿
2014/05/21 职场文书
会计毕业生自荐书
2014/06/12 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
财务工作检讨书
2014/10/29 职场文书
小学生表扬稿范文
2015/05/05 职场文书