当组件返回单个根节点时,非 prop
attribute 将自动添加到根节点的
如果我们需要通过 data status property 定义 <date-picker> 组件的状态,它将应用于根节点 (即 div.date-picker)。
<!-- 具有非prop attribute的Date-picker组件-->
<date-picker data-status="activated"></date-picker>
<!-- 渲染 date-picker 组件 -->
<div class="date-picker" data-status="activated">
<input type="datetime-local" />
</div>
同样的规则适用于事件监听器:
<date-picker @change="submitChange"></date-picker>
复制代码
// 我是子组件date-picker
export default {
created() {
console.log(this.$attrs) // { onChange: () => {} }
}
}
当有一个 HTML 元素将 change 事件作为 date-picker 的根元素时,这可能会有帮助。
<!-- 我是子组件date-picker -->
<template>
<select>
<option value="1">Yesterday</option>
<option value="2">Today</option>
<option value="3">Tomorrow</option>
</select>
</template>
复制代码
在这种情况下,change 事件监听器从父组件传递到子组件,它将在原生 select 的 change 事件上触发。我们不需要显式地从 date-picker 发出事件:
<template>
<view id="date-picker" class="demo">
<date-picker @change="showChange"></date-picker>
</view>
</template>
<script>
export default {
methods: {
showChange(event) {
console.log(event,event.target.value) // 将记录所选选项的值
}
}
}
</script>