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 ...
随机推荐
- ActiveMQ消息的持久化策略
持久化消息和非持久化消息的存储原理: 正常情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的.能够存储的最大消息数据在${ActiveMQ_HOME}/conf/activemq.xml ...
- javascript 将毫秒值转换为天-小时-分钟-秒钟
var start_timeMS = new Date(start_date).getTime(); var end_timeMS = new Date(end_date).getTime(); va ...
- linux上安装redis并使用
1.下载:curl -O http://download.redis.io/releases/redis-4.0.6.tar.gz 2.在/usr/local/redis上解压:tar -zxvf r ...
- 华硕X75VB安装ubuntu12.10网卡不可用等相关问题总结
笔记本相关信息: 电脑型号:华硕X75VB 笔记本电脑 处理器:i5-3230M 2.60GHz 双核 主板:华硕X75VB (英特尔 Ivy Bridge - HM76 Express芯片组) 内存 ...
- 009-Python-面向对象
1.面向对象: 1.1什么是类? 类:把一类事物的相同的特征和动作整合到一起就是类,类是一个抽象的概念: 1.2什么是对象? 对象:就是基于类而创建的一个具体事物(具体存在的)也是特征和动作整合到一起 ...
- CMake在Visual Studio下保持目录结构
CMake在Visual Studio下保持目录结构 原理 主要通过CMAKE自带函数source_group来设定. 需要把add_executable()函数进行封装,包裹一层source_gro ...
- VMware搭建虚拟机服务器
一.需求点描述: 1.在有路由器的情况下,能够通过固定的外网IP访问路由器中某台实体机中运行的虚拟机. 2.能够通过外网IP访问该虚拟机中的ftp.远程连接.iis.tomcat等. 二.原理分析: ...
- postgresql 10 ssl 双向认证
https://blog.csdn.net/dna911/article/details/82819637
- 【Codeforces】Codeforces Round #551 (Div. 2)
Codeforces Round #551 (Div. 2) 算是放弃颓废决定好好打比赛好好刷题的开始吧 A. Serval and Bus 处理每个巴士最早到站且大于t的时间 #include &l ...
- 一起学Hadoop——TotalOrderPartitioner类实现全局排序
Hadoop排序,从大的范围来说有两种排序,一种是按照key排序,一种是按照value排序.如果按照value排序,只需在map函数中将key和value对调,然后在reduce函数中在对调回去.从小 ...