详解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 相关文章推荐
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
Javascript 面向对象 继承
May 13 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
May 03 Javascript
JavaScript头像上传插件源码分享
Mar 29 Javascript
详解React-Todos入门例子
Nov 08 Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
纯JavaScript实现实时反馈系统时间
Oct 26 Javascript
Vue 按键修饰符处理事件的方法
May 04 Javascript
在vue项目中优雅的使用SVG的方法实例详解
Dec 03 Javascript
微信小程序实现搜索指定景点周边美食、酒店
May 18 Javascript
微信小程序HTTP请求从0到1封装
Sep 09 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 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 cli换行示例
2014/04/22 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
jquery中获取元素的几种方式小结
2011/07/05 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2017/01/17 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
js实现掷骰子小游戏
2019/10/24 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
Python优先队列实现方法示例
2017/09/21 Python
python中hashlib模块用法示例
2017/10/30 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
什么时候需要进行强制类型转换
2016/09/03 面试题
大学团支书的自我评价分享
2013/12/14 职场文书
《学会待客》教学反思
2014/02/22 职场文书
媒体宣传策划方案
2014/05/25 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
学习作风建设心得体会
2014/10/22 职场文书
客户答谢会致辞
2015/01/20 职场文书