详解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 相关文章推荐
iframe 上下滚动条如何默认在下方实现原理
Dec 10 Javascript
JS禁用浏览器退格键实现思路及代码
Oct 29 Javascript
一个js控制的导航菜单实例代码
Dec 03 Javascript
javascript HTML5 canvas实现打砖块游戏
Jun 18 Javascript
BootStrap中的表单大全
Sep 07 Javascript
jQuery获取this当前对象子元素对象的方法
Nov 29 Javascript
@ResponseBody 和 @RequestBody 注解的区别
Mar 08 Javascript
jQuery中each循环的跳出和结束实例
Aug 16 jQuery
详解VUE自定义组件中用.sync修饰符与v-model的区别
Jun 26 Javascript
Vue表单demo v-model双向绑定问题
Jun 29 Javascript
vue通过数据过滤实现表格合并
Nov 30 Javascript
vue 子组件watch监听不到prop的解决
Aug 09 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 expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
Python PyQt5标准对话框用法示例
2017/08/23 Python
谈谈python中GUI的选择
2018/03/01 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
python生成lmdb格式的文件实例
2018/11/08 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
加拿大服装和鞋类零售商:Mark’s
2021/01/04 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
酒店管理求职信范文
2014/04/06 职场文书
贷款承诺书范文
2014/05/19 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
中小企业员工手册范本
2015/05/14 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书