欢迎来到代码驿站!

vue

当前位置:首页 > 网页前端 > vue

vue3中update:modelValue的使用与不生效问题解决

时间:2022-07-01 09:48:01|栏目:vue|点击:

v-model中update:modelValue

v-model的主要原因是由于value和input事件可能另有它用,那么我们可不可以直接使用另外的属性和方法,而不需要去通过model进行定义。

vue3中就实现了这个功能,v-model绑定的不再是value,而是modelValue,接收的方法也不再是input,而是update:modelValue

写法:

<ChildComponent v-model:title="title" />
//或者
<ChildComponent :modelValue = "title" @update:modelValue = "title = $event">
// 或者
<ChildComponent :title="title" @update:title = "title = $event" />

使用:

父组件

<wm-tinymce
  ref="editor"
  v-model="data.introduction"
  :min-height="400"
  name="职能管理"
  placeholder="请编辑职能大类"
/>

子组件

<div class="tinymce-container">
    <editor
      v-model="tinymceData"
      :api-key="key"
      :init="tinymceOptions"
      :name="name"
      :readonly="tinymceReadOnly"
    />
</div>
<script>
  import { ref, watch, watchEffect } from 'vue'
  import Editor from '@tinymce/tinymce-vue'
  import { key, plugins, toolbar, setting } from './config'
  export default {
    name: 'WmTinymce',
    components: { Editor },
    props: {
      modelValue: {
        type: String,
        default: '',
      },
      readOnly: {
        type: Boolean,
        default: false,
      },
      options: {
        type: Object,
        default() {
          return { plugins, toolbar }
        },
      },
      name: {
        type: String,
        default: '',
      },
    },
    emits: ['update:modelValue'],
    setup(props, { emit }) {
      const tinymceData = ref(props.modelValue) // 编辑器数据
      watch(
        () => tinymceData.value,
        (data) => emit('update:modelValue', data)
      ) // 监听富文本输入值变动
      return {
        tinymceData,
      }
    },
  }
</script>

vue3子组件update:modelValue不生效问题

用event去做绑定

<ChildComponent :title=“title” @update:title = “title = $event” />

也就是加上 @update:title = “title = $event” 测试成功

总结

上一篇:vue3封装Notification组件的完整步骤记录

栏    目:vue

下一篇:Vue.js学习之过滤器详解

本文标题:vue3中update:modelValue的使用与不生效问题解决

本文地址:http://www.codeinn.net/misctech/206501.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有