Vue 上的 JSX Spread 属性
JSX Spread Attributes on Vue
我正尝试在 Vue 组件上使用 JSX 传播属性,如下所示。
<script>
const
Square = p => <button class="square" v-on:click={ () => p.props.click( p.props.index ) }>{ p.props.squares[ p.props.index ] }</button>
const
Board = p => (
<div>
<Square squares={ p.props.squares } click={ p.props.click } index='0' />
<Square { ...p.props } index='1' />
</div>
)
export default {
data : () => ( { squares: [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ] } )
, render ( h ) { return <Board squares={ this.squares } click={ this.handleClick } /> }
, methods : {
handleClick: i => console.log( i )
}
}
</script>
这一行可以:
<Square squares={ p.props.squares } click={ p.props.click } index='0' />
但是这一行似乎无法将属性从 'Board' 传递到 'Square'
<Square { ...p.props } index='1' />
请帮助我。提前致谢。
也许你可以这样做
<Square { ...{props: p.props} } index='1' />
我正尝试在 Vue 组件上使用 JSX 传播属性,如下所示。
<script>
const
Square = p => <button class="square" v-on:click={ () => p.props.click( p.props.index ) }>{ p.props.squares[ p.props.index ] }</button>
const
Board = p => (
<div>
<Square squares={ p.props.squares } click={ p.props.click } index='0' />
<Square { ...p.props } index='1' />
</div>
)
export default {
data : () => ( { squares: [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ] } )
, render ( h ) { return <Board squares={ this.squares } click={ this.handleClick } /> }
, methods : {
handleClick: i => console.log( i )
}
}
</script>
这一行可以:
<Square squares={ p.props.squares } click={ p.props.click } index='0' />
但是这一行似乎无法将属性从 'Board' 传递到 'Square'
<Square { ...p.props } index='1' />
请帮助我。提前致谢。
也许你可以这样做
<Square { ...{props: p.props} } index='1' />