详解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中的几个运算符
Jun 29 Javascript
javascript getElementsByClassName函数
Apr 01 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
Nov 25 Javascript
window.open 以post方式传递参数示例代码
Feb 27 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
JavaScript数组前面插入元素的方法
Apr 06 Javascript
JavaScript中的fontsize()方法使用详解
Jun 08 Javascript
javascript适合移动端的日期时间拾取器
Nov 10 Javascript
js仿百度音乐全选操作
Jan 13 Javascript
JS获取url参数,JS发送json格式的POST请求方法
Mar 29 Javascript
使用async await 封装 axios的方法
Jul 09 Javascript
vue组件的路由高亮问题解决方法
May 11 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者的疑难问答(2)
2006/10/09 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
PHP生成随机密码类分享
2014/06/25 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
php封装的page分页类完整实例
2016/10/18 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
动态加载外部javascript文件的函数代码分享
2011/07/28 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
python实现发送邮件功能代码
2017/12/14 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
Python文件操作基础流程解析
2020/03/19 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
golang/python实现归并排序实例代码
2020/08/30 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
求网格中的黑点分布
2013/11/06 面试题
销售辞职信范文
2015/03/02 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
杨善洲电影观后感
2015/06/04 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python