详解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 相关文章推荐
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
Dec 29 Javascript
javascript字符串拼接的效率问题
Dec 25 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
Nov 25 Javascript
浅谈几种常用的JS类定义方法
Jun 08 Javascript
AngularJS入门教程之双向绑定详解
Aug 18 Javascript
浅谈$_FILES数组为空的原因
Feb 16 Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 Javascript
vue项目部署到Apache服务器中遇到的问题解决
Aug 24 Javascript
jquery无缝图片轮播组件封装
Nov 25 jQuery
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
微信小程序异步处理详解
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使用适合阅读的格式显示文件大小的方法
2015/03/05 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
php头像上传预览实例代码
2017/05/02 PHP
php文件包含的几种方式总结
2019/09/19 PHP
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
微信小程序签到功能
2018/10/31 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
查看python下OpenCV版本的方法
2018/08/03 Python
python元组和字典的内建函数实例详解
2019/10/22 Python
详解python 中in 的 用法
2019/12/12 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
经典大学生求职信范文
2014/01/06 职场文书
业务部主管岗位职责
2014/01/29 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
《掌声》教学反思
2014/02/23 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
2014年少先队工作总结
2014/12/03 职场文书
员工年度工作总结2015
2015/05/18 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Redis基本数据类型List常用操作命令
2022/06/01 Redis