vue实现双向绑定有哪几个方法

vue实现双向绑定的方法:1、利用v-model指令实现绑定,自定义组件上的v-model相当于传递了modelValue prop并接收抛出的update:modelValue事件;2、利用vue-better-sync插件实现绑定;3、利用v-bind.sync修饰符,语法“”。

vue实现双向绑定有哪几个方法

本教程操作环境:windows7系统、vue3版,DELL G3电脑。

Vue 实现双向绑定的几种方法

1、v-model 指令

登录后复制

如果要将属性或事件名称更改为其他名称,则需要在 ChildComponent 组件中添加 model 选项:

登录后复制

// ChildComponent.vueexport default {  model: {    prop: 'title',    event: 'change'  },  props: {    // 这将允许 `value` 属性用于其他用途    value: String,    // 使用 `title` 代替 `value` 作为 model 的 prop    title: {      type: String,      default: 'Default title'    }  }}

登录后复制

所以,在这个例子中 v-model 是以下的简写:


登录后复制登录后复制

Vue 3.x 中,自定义组件上的 v-model 相当于传递了 modelValue prop 并接收抛出的 update:modelValue 事件:

立即学习“前端免费学习笔记(深入)”;

登录后复制

Vue3 可以绑定多个v-model, 例如:

2、vue-better-sync 插件

有需求如此:开发一个 Prompt 组件,要求同步用户的输入,点击按钮可关闭弹窗。

1.png

一般我们会这样做:

  
    
完善个人信息
    
      
尊姓大名?
          
    
                
  
export default { name: 'prompt', props: { answer: String, visible: Boolean }, computed: { _answer: { get() { return this.answer }, set(value) { this.$emit('input', value) } }, _visible: { get() { return this.visible }, set(value) { this.$emit('update:visible', value) } } }}

登录后复制

写一两个组件还好,组件规模一旦扩大,写双向绑定真能写出毛病来。于是,为了解放生产力,有了 vue-better-sync 这个轮子,且看用它如何改造我们的 Prompt 组件:

  
    
完善个人信息
    
      
尊姓大名?
          
    
                
  
import VueBetterSync from 'vue-better-sync'export default { name: 'prompt', mixins: [ VueBetterSync({ prop: 'answer', // 设置 v-model 的 prop event: 'input' // 设置 v-model 的 event }) ], props: { answer: String, visible: { type: Boolean, sync: true // visible 属性可用 .sync 双向绑定 } }}

登录后复制

vue-better-sync 统一了 v-model 和 .sync 传递数据的方式,你只需 this.actual${PropName} = newValue 或者 this.sync${PropName}(newValue) 即可将新数据传递给父组件。

GitHub:fjc0k/vue-better-sync

3、使用 v-bind.sync修饰符

在某些情况下,我们可能需要对某一个 prop 进行“双向绑定”(除了前面用 v-model 绑定 prop 的情况)。为此,我们建议使用 update:myPropName 抛出事件。例如,对于在上一个示例中带有 title prop 的 ChildComponent,我们可以通过下面的方式将分配新 value 的意图传达给父级:

this.$emit('update:title', newValue)

登录后复制

如果需要的话,父级可以监听该事件并更新本地 data property。例如:


登录后复制

为了方便起见,我们可以使用 .sync 修饰符来缩写,如下所示:


登录后复制登录后复制

vue3 移除.sync

【相关推荐:vuejs视频教程、web前端开发】

以上就是vue实现双向绑定有哪几个方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2923335.html

(0)
上一篇 2025年3月11日 18:46:49
下一篇 2025年2月28日 23:08:48

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vue.js为什么报错

    vue.js报错的原因:1、语法错误;2、组件使用不当;3、数据绑定问题;4、生命周期钩子使用不当;5、插件或依赖问题;6、路由配置错误;7、异步操作处理不当;8、模板编译错误;9、项目配置问题;10、浏览器兼容性问题。 Vue.js 报错…

    2025年3月11日
    200
  • vue.js怎么带参数跳转

    vue.js带参数跳转的方法:1、定义路由;2、在组件中使用路由参数;3、进行带参数的跳转。 在Vue.js中,可以使用路由参数来在不同的页面之间传递数据。这通常是通过路由的动态片段参数实现的。以下是如何在Vue.js中带参数跳转的一般步骤…

    2025年3月11日
    200
  • 详解vue.js中$set与数组如何更新

    由于 javascript 的限制,vue 不能检测以下变动的数组:当利用索引直接设置数组的某一项时,例如:vm.items[indexofitem] = newvalue 当你修改数组的长度时,例如:vm.items.length = n…

    2025年3月10日
    200
  • 彻底理解CSS中视觉格式化模型(附示例)

    本篇文章给大家带来的内容是关于彻底理解css中视觉格式化模型(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 不论你在什么时候开始,重要的是开始之后不要停止。 前言 对于部分前端工程师来讲,有时候CSS令他们很头疼…

    2025年3月10日
    200
  • CSS中display: inline-block的用法解析

    本篇文章给大家带来的内容是关于css中display: inline-block的用法解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 迷之间隙 我们创建一个导航列表,并将其列表 item 设置为 inline-bloc…

    2025年3月10日
    200
  • 选择器(picker)插件的实现方法介绍(代码)

    本篇文章给大家带来的内容是关于选择器(picker)插件的实现方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一个正常的选择器插件是非常细致的,一步一步来描述就是。手指滑动内容跟随手指滚动,当内容到底或触顶…

    2025年3月10日
    200
  • 分享20个首页流行布局样式,总有一款适合你!

    本篇文章给大家分享20个首页流行布局样式,总有一款适合你,快来收藏试试吧,希望对大家有所帮助! 有时我们会在网站上遇到一些内容布局问题,如文字对齐、图片设计与内容和谐、为文章选择合适的字体……在今天的文章中,介绍一些…

    2025年3月10日 编程技术
    200
  • 基于 Vue.js 2.0实现酷炫自适应背景视频登录页面

    本文讲述如何实现拥有酷炫背景视频的登录页面,浏览器窗口随意拉伸,背景视频及前景登录组件均能完美适配,背景视频可始终铺满窗口,前景组件始终居中,视频的内容始终得到最大限度的保留,可以得到最好的视觉效果。并且基于 vue.js 2.0 全家桶。…

    2025年3月8日 编程技术
    200
  • Vue.js在数组中插入重复数据详解

    本文主要介绍了vue.js在数组中插入重复数据的实现代码,需要的朋友可以参考下,希望能帮助到大家。 1、在默认的情况下,Vue.js默认不支持往数组中加入重复的数据。可以使用track-by=”$index”来实现。…

    2025年3月8日
    200
  • Vue.js 组件中的v-on绑定自定义事件

    本文主要介绍了浅谈vue.js 组件中的v-on绑定自定义事件理解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 每个 Vue 实例都实现了事件接口(Events interface),即:…

    2025年3月8日
    200

发表回复

登录后才能评论