自定义事件是指我们常常需要在子组件调用父组件的方法。由于通过标签属性进行传递,建议使用短横线(-)连接,那么从而使用emit进行触发的时候,仍然使用的是短横线的名称。
    示例:

    反例

    1. //父组件
    2. <product-item @productChangeStatus="changeStatus"></product-item>
    3. <script>
    4. export default {
    5. methods: {
    6. changeStatus(product) {
    7. product.status = !product.status;
    8. }
    9. }
    10. }
    11. </script>
    12. //子组件
    13. <template>
    14. <div class="product-item" @click="change(product)">.....</div>
    15. </template>
    16. <script>
    17. export default {
    18. methods: {
    19. change(product) {
    20. this.$emit("productChangeStatus",product)
    21. }
    22. }
    23. }
    24. </script>

    正例

    1. //父组件
    2. <product-item @product-change-status="changeStatus"></product-item>
    3. <script>
    4. export default {
    5. methods: {
    6. changeStatus(product) {
    7. product.status = !product.status;
    8. }
    9. }
    10. }
    11. </script>
    12. //子组件
    13. <template>
    14. <div class="product-item" @click="change(product)">.....</div>
    15. </template>
    16. <script>
    17. export default {
    18. methods: {
    19. change(product) {
    20. this.$emit("product-change-status",product)
    21. }
    22. }
    23. }
    24. </script>