详解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写的一个DIV 弹出网页对话框
Aug 14 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
Jun 19 Javascript
解决WordPress使用CDN后博文无法评论的错误
Dec 15 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 Javascript
修改ligerui 默认确认按钮的方法
Dec 27 Javascript
RequireJS 依赖关系的实例(推荐)
Jan 21 Javascript
javascript过滤数组重复元素的实现方法
May 03 Javascript
element ui里dialog关闭后清除验证条件方法
Feb 26 Javascript
p5.js入门教程和基本形状绘制
Mar 15 Javascript
微信小程序常见页面跳转操作简单示例
May 01 Javascript
JavaScript中的 new 命令
May 22 Javascript
完美解决通过IP地址访问VUE项目的问题
Jul 18 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 empty()与isset()区别的详细介绍
2013/06/17 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
javascript实用方法总结
2015/02/06 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
Python反转序列的方法实例分析
2018/03/21 Python
点球小游戏python脚本
2018/05/22 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
python三引号输出方法
2019/02/27 Python
python替换字符串中的子串图文步骤
2019/06/19 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
通过实例解析python and和or使用方法
2020/11/14 Python
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
诚信贷款承诺书
2014/05/30 职场文书
爱国口号
2014/06/19 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
高中物理教学反思
2016/02/19 职场文书
Golang二维切片初始化的实现
2021/04/08 Golang