详解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 相关文章推荐
dwr spring的集成实现代码
Mar 22 Javascript
javascript自启动函数的问题探讨
Oct 05 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
jQuery实现瀑布流的取巧做法分享
Jan 12 Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 Javascript
json传值以及ajax接收详解
May 24 Javascript
jquery css实现邮箱自动补全
Nov 14 Javascript
完美实现js选项卡切换效果(一)
Mar 08 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
JS使用贪心算法解决找零问题示例
Nov 27 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
Aug 11 Javascript
vue项目中js-cookie的使用存储token操作
Nov 13 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 缓存函数代码
2008/08/27 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
php依赖注入知识点详解
2019/09/23 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
Vue2.0权限树组件实现代码
2017/08/29 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
2018/12/11 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python Requests 基础入门
2016/04/07 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
Python实现求数列和的方法示例
2018/01/12 Python
Pandas分组与排序的实现
2019/07/23 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
中华魂放飞梦想演讲稿
2014/08/26 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
班主任2015新年寄语
2014/12/08 职场文书
英语导游词
2015/02/13 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
《失物招领》教学反思
2016/02/20 职场文书
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技