vue中的jsx
一、配置文件package.json
{ "name": "vuetest", "version": "1.0.0", "description": "", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "server": "webpack-dev-server --open", "build": "webpack-dev-server" }, "author": "camille", "license": "ISC", "devDependencies": { "babel-core": "^6.26.0", "babel-helper-define-map": "^6.26.0", "babel-helper-optimise-call-expression": "^6.24.1", "babel-helper-vue-jsx-merge-props": "^2.0.2", "babel-loader": "^7.1.2", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-vue-jsx": "^3.5.0", "babel-preset-es2015": "^6.24.1" } }
devDependencies这一项最初没有,是在后续步骤中,安装插件时,通过命令自动添加的。
二、新建文件
1、index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vuejsx</title> </head> <body> <div id="J_vapp_jsx"></div> <script type="text/javascript" src="https://unpkg.com/vue"></script> <script type="text/javascript" src="bundle.js"></script> </body> </html>
2、webpack.config.js
module.exports = { entry: './myvu.js', output: { path: __dirname, filename: 'bundle.js' }, devtool: "inline-source-map", module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: [ 'babel-loader'] } ] } }
3、.babelrc
{ "presets": ["es2015"], "plugins": ["transform-vue-jsx"] }
4、myvu.js
var vm = new Vue({ el: '#J_vapp_jsx', data: { msg: 'Hello JSX' }, methods: { hello () { alert('Hello Vue 2.0') } }, render (h) { const data = { attrs: { id: 'J_div' }, on: { click: () => { console.log('点击状态:点击啦!') } }, props: { innerHTML: 'hihihi' }, hook: { insert: () => { console.log('dom插入状态:已经插入。') } } } // return <div title="一个div" {...data}/> return ( <div id="J_jsx_box"> <button class={{ cls1: true, cls2: true }} style={{fontSize: '15px'}} on-click={this.hello} {...data}> {this.msg} </button> </div> ) } })
三、安装相关插件
cnpm i -D xxx
xxx包含babel-plugin-syntax-jsx,babel-plugin-transform-vue-jsx,babel-helper-vue-jsx-merge-props,babel-core,babel-loader,babel-preset-es2015。
为什么会在package.json中看到babel-helper-define-map和babel-helper-optimise-call-expression,这是我在调试的时候,自己加上去的,也要安装,然后就不报错了。github上的vue作者写的文档有些问题,直接运行会报错。
四、运行项目
npm run server
vue中的jsx的更多相关文章
- vue中使用jsx
vue中使用jsx 为什么需要使用jsx呢?这个需要搞清楚 其实vue官方也说了,对于那些非常多v-if v-else的情况,就可以尝试使用render函数或者jsx,不过render函数写简单的结构 ...
- 在Vue中使用JSX,很easy的
摘要:JSX 是一种 Javascript 的语法扩展,JSX = Javascript + XML,即在 Javascript 里面写 XML,因为 JSX 的这个特性,所以他即具备了 Javasc ...
- vue中使用JSX报错,如何解决
Support for the experimental syntax 'jsx' isn't currently enabled (32:12): 30 | }, 31 | render() { & ...
- 在vue中使用jsx语法
什么是JSX? JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解 ...
- 记录在vue中使用jsx时踩过的坑
使用方法及细节就不一一说了. 1.给input或者textarea绑定value时,出现失效的问题.解决方法:https://github.com/vuejs/babel-plugin-transfo ...
- vue中书写JSX一些坑-特殊属性名
举例说明, T1和T2引用Sub时, key2会出现在props以及data.attrs中, 而key则在data中 const Sub = ({data, props}) => { conso ...
- Vue中使用JSX语法
一 项目结构 二 App组件 <template> <div id="app"> <fruit/> </div> </temp ...
- vue中的页面渲染方案
一.模板渲染 <div id="J_render_app"> <ul v-if="items.length"> <li v-for ...
- 谈谈 Vue 模板和 JSX
工具链 从学习曲线角度来讲,结合我个人体会,React 学习路线是比 Vue 陡峭的,这个和 JSX.Template 有关吗?当然有.在 React 中使用 JSX,众所周知, JSX 需要经过 T ...
随机推荐
- 初始Ajax
一.Ajax准备知识:json 说起json,我们大家都了解,就是python中的json模块,那么json模块具体是什么呢?那我们现在详细的来说明一下 1.json(Javascript Obie ...
- 按照勾选 删除表格的行<tr>
需求描述:有一个产品列表,有一个删减按钮,点击删减按钮,按照产品勾选的行,删除产品列表中对应的行数据 代码: //html代码<table id="table1"> & ...
- Ajax增删改查-----------查
查询所有 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- map映射巧用 A-B Problems
A-B problem Description 大家都非常熟悉 A+B Problem! 题目看多了也有审美疲劳,于是我舍弃了,改用 A-B problem! 题目是这样的:给出一串数以及一个数字 C ...
- Mac OS X10.8.3-bash基本命令失效后的修复
-bash基本命令都失败了. 比如: -bash: ls :command not found 顿时心都凉了. 想要找到.bash_profile文件也不是那么容易的. step1. 在t ...
- CentOS6.9安装Kafka
先设置jdk1.8 vi /etc/profile export JAVA_HOME=/usr/local/jdkexport JRE_HOME=/usr/local/jdk/jreexport CL ...
- 如何区分oracle服务器、oracle客户端、plsql?
大家在安装oracle数据库的时候,是不是有很多区分不清的概念,以至于束手无策呢?现在有一个问题,就是怎么区分oracle服务器.oracle客户端.plsql三者的概念?我想,新手在安装的时候可能会 ...
- bzoj4773: 负环
题解: 网上还有一种spfa+深度限制的算法 https://www.cnblogs.com/BearChild/p/6624302.html 是不加队列优化的spfa,我觉得复杂度上限是bellma ...
- 用groovy脚本进行每日工作的自动化【groovy】
我们可以用groovy编写日常的批处理脚本,类似windows下的bat或者unix下的shell.其具体的编写方式非常简单,比如我们想要执行一个dir的命令,只要编写一个test.groovy,其中 ...
- ionic2+中修改minSdkVersion的方法
具体方法很简单,直接在config.xml中找到下面这一行 <preference name="android-minSdkVersion" value="17&q ...