在编写组件时 使用rander函数编写组件 发现事件没有被触发后来发现写的方式不对
错误的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| render(h){ return h( 'div', { 'class': { foo: true, bar: false }, style: { fontSize: '14px', width: '100px', backgroundColor: '#bf0000' }, attrs: { id: 'foo' }, on: { click: (data)=>{ this.$emit("click",data) }, visiableChange:value => { this.$emit('visible-change', value); } }, }, [ '一些内容', createElement('h1', '一条文字') ] ) }
|
正确使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| render(h){ return h( 'div', { 'class': { foo: true, bar: false }, style: { fontSize: '14px', width: '100px', backgroundColor: '#bf0000' }, attrs: { id: 'foo' }, on: { click: (data)=>{ this.$emit("click",data) }, "visiable-change":value => { this.$emit('visible-change', value); } }, }, [ '一些内容', createElement('h1', '一条文字') ] ) }
|
问题:
render编写组件 非单单词无法触发emit事件
解决办法:
将非单单词修改为原生事件名称层 然后用引号包裹一下