我使用的渲染功能如下:VUE巴貝爾裝載機語法錯誤:在意外令牌「:單擊」語法
.script.js
:
methods: {
handleClick(data){
console.log(data)
},
render(h, { node, data, store }) {
return (
<span>
<span>
<span>{node.label}</span>
</span>
<span style="float: right; margin-right: 20px">
<a href="javascript:;"
:attr="data.id" @click="handleClick">Edit{data.id}
</a>
</span>
</span>
);
}
}
但巴貝爾encoutners錯誤說法:click
有意外的標記。
.vue
:
<template src="./template.html"></template>
<script src="./script.js"></script>
package.json
:
"vue": "^2.2.6"
"vue-router": "^2.4.0"
"element-ui": "^1.2.8",
"babel-core": "^6.24.0",
"babel-loader": "^6.4.1",
"babel-plugin-transform-vue-jsx": "^3.4.2",
"vue-loader": "^11.3.4",
"webpack": "^2.3.1",
webpack
:
{
test: /\.vue$/,
loader: `vue-loader`,
options: {
loaders: {
js: 'babel-loader'
}
}
},
{
test: /\.js$/,
loader: `babel-loader`,
exclude: /(node_modules)/
}
.babelrc
:
{
"presets": [
["es2015", { "modules": false }], "stage-1", "stage-2", "stage-3"
],
"plugins": [
["transform-vue-jsx"],
["transform-object-assign"],
["component", [{
"libraryName": "element-ui",
"styleLibraryName": "theme-default"
}]]
]
}
當我運行gulp dist
,巴貝爾像如下拋出一個錯誤:
Namespaced tags/attributes are not supported. JSX is not XML.\nFor attributes like xlink:href, use xlinkHref instead.
你是不是指'@ click'? – thanksd
@thanksd我編輯它。 – Aflext
這不是JSX。您不能混用JSX和Vue語法;它是一個或另一個。它應該像'onClick = {this.handleClick}'。 – Bert