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 ...
随机推荐
- MongoDB的简单操作
一.简介 二.MongoDB基础知识 三.安装 四.基本数据类型 五.增删改查操作 六.可视化工具 七.pymongo 一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoD ...
- django之ORM数据库操作
一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录----------------->类实例 ...
- swoole 简介
- Selenium CSS定位语法
大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css的定位 ...
- @ResponseBody//该注解会将返回值转为json格式并放到响应体中返回到前台
- UTC时间戳转为时间
/// <summary> /// 将UTC时间转化DateTime时间 /// </summary> /// <returns></returns> ...
- Zabbix监控——Zabbix自定义用户参数制作监控项
https://blog.51cto.com/183530300/2087774 https://www.cnblogs.com/richardzgt/articles/7889404.html
- .net core vs2015 vs2017打开后errpr
需要将每个项目中增加global.json 并设置sdk的版本,注意,每个类库中均需增加. { "sdk": { "version": "1.0.0 ...
- Centos7编译安装GCC7.2
通常编译的时候可能需要新版本的gcc,本文就说明下基于低版本的gcc升级为gcc7.2 wget 'http://mirrors-usa.go-parts.com/gcc/releases/gcc-7 ...
- SPOJ 1812 LCS2
题解: 和上一题差不多 每个点记录前面的到这个点的最大值 初值赋为len[i] 然后注意要用子节点更新父节点 代码: #include <bits/stdc++.h> #define ll ...