• 父组件中通过v-model来显示子组件


    方法一

    父组件示例:

    <operationRecord v-model="displayRecord" >operationRecord>

    子组件示例:

    1. <template>
    2. <div>
    3. <Modal v-model="opreate" width="1100" footer-hide @on-cancel="labelCancel">
    4. <Table :border="true" :columns="header" :data="recordData">Table>
    5. Modal>
    6. div>
    7. template>
    8. <script>
    9. export default {
    10. props: {
    11. value: {
    12. type: Boolean,
    13. default: false,
    14. },
    15. recordData:{
    16. type: Array,
    17. default: () => [],
    18. }
    19. },
    20. watch: {
    21. value(newValue, old) {
    22. this.opreate = newValue
    23. }
    24. },
    25. data(){
    26. return {
    27. opreate: false,
    28. header: [
    29. { title: "序号", type: "index", align: "center", width: 80 },
    30. { title: "操作时间", key: "time", align: "center", minWidth: 200 },
    31. { title: "操作人员", key: "user", align: "center", minWidth: 200 },
    32. ],
    33. }
    34. },
    35. methods:{
    36. labelCancel(){
    37. this.$emit('input', false) // 关闭弹框
    38. }
    39. }
    40. }
    41. script>

    方法二

     父组件示例:

    <add-or-update :isShow.sync="isShow" >add-or-update>

    子组件示例:

    1. props: {
    2. isShow: {
    3. type: Boolean,
    4. default: false,
    5. }
    6. }
    1. computed: {
    2. show: { // 它是子组件内部,绑定的v-model值
    3. get() {
    4. return this.isShow;
    5. },
    6. set(val) {
    7. this.$emit("update:isShow", val);
    8. },
    9. }
    10. }
    this.show = false   // 直接操作就可以了

    总结

    `:isShow.sync`

    • 这是一种自定义的 prop,通常在子组件中使用。
    • 它需要在子组件的 props 中声明,同时需要在父组件中使用 .sync 修饰符进行绑定。
    • 当子组件需要修改这个值时,它应该通过 this.$emit('update:isShow', newValue) 的方式通知父组件,父组件会响应这个事件来更新 isShow
    • 这样的绑定方式有助于明确表达数据的双向绑定,但需要更多的代码来实现。

    `v-model`:

    • v-model 是一种更简洁的语法糖,通常在子组件中不需要额外的声明,只需在子组件中使用 model 选项进行配置。
    • 它是基于 value prop 和 input 事件进行工作的,父组件只需使用 v-model 来绑定数据即可。
    • 当子组件需要修改这个值时,它只需直接修改 this.$emit('input', newValue),父组件会自动更新 v-model 绑定的值。

     

    总的来说,使用 v-model 更简洁,但在子组件中需要额外的配置 model 选项。

    使用 :isShow.sync 更明确,需要在父组件中使用 .sync 修饰符,但无需额外的配置。

    你可以根据项目的需求和你更喜欢的语法风格来选择其中之一。 

  • 相关阅读:
    【python项目推荐】键盘监控--统计打字频率
    java判断对象是否还在被引用
    Testng+ExtentReports测试报告
    gif动态图怎么制作?gif动态图在线制作一键搞定
    RabbitMQ、RocketMQ、Kafka
    Day724. 如何改进代码废弃 -Java8后最重要新特性
    EasyRecovery15最新版功能强大的电脑数据恢复
    可选的优化器:Adam、SGD、Adagrad、RMSprop、Sparse Adam
    MySQL导出数据为csv的方法(亲测)
    机器学习强基计划9-2:图解字典学习KSVD算法(附Python实战)
  • 原文地址:https://blog.csdn.net/weixin_48674314/article/details/134298563