当前位置: 首页 > news >正文

青海省公路工程建设总公司网站上海b2b网络推广外包

青海省公路工程建设总公司网站,上海b2b网络推广外包,wordpress http error,新疆新疆网页设计网站建设何为组件间双向绑定 我们都知道当父组件改变了某个值后,如果这个值传给了子组件,那么子组件也会自动跟着改变,但是这是单向的,使用v-bind的方式,即子组件可以使用父组件的值,但是不能改变这个值。组件间的…

何为组件间双向绑定

我们都知道当父组件改变了某个值后,如果这个值传给了子组件,那么子组件也会自动跟着改变,但是这是单向的,使用v-bind的方式,即子组件可以使用父组件的值,但是不能改变这个值。组件间的双向绑定就是对于父组件的变更,子组件可以感知到,同样对于子组件的变更,父组件也可以感知到。这个过程是自动的。Vue中的双向绑定用v-model来实现

示例解析

这里我们还是以一个计数器组件来介绍Vue的双向绑定,我们定义一个Div显示一个数,当我们点击这个数的时候,让这个数加1,代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>组件间双向绑定</title><script src="https://unpkg.com/vue@next"></script>
</head>
<body><div id="root"></div>
</body>
<script>const app = Vue.createApp({data() {return {count:1}},methods:{handleCountOneChange(count){this.count = count;}},template: `<div><counter v-model:count = "count"  @change-count-one="handleCountOneChange"/></div>`});app.component('counter',{props:['count'],methods: {handleItemClick(){this.$emit('change-count-one',this.count + 1);},},template:`<div @click="handleItemClick">{{count}}</div>`});const vm = app.mount('#root');
</script>
</html>

在之前我们要将父组件传过来的值做加一操作的时候,由于是单向数据流,我们只能把父组件传来的值先拷贝一份到子组件,然后让子组件去改变自己的这个值来达到子组件的计数效果,本节所讲的双向数据绑定可以在子组件中将这个值加一后传到父组件,父组件收到这个值以后又会同步给子组件,这样就完成了一个计数器。如上面代码所示,父组件通过v-model的方式将count传给子组件,子组件收到这个值后,当用户点击了div后,就会执行handleItemClick方法,这个方法会通过事件的方式,将count+1的值通知给父组件,父子组件由于是双向绑定的,所以这个count的值又会被子组件感知到然后子组件就显示了count+1 的值了,如此循环,点击一次,值就加一。就完成了counter组件的计数功能了。

这里需要注意的是,父组件传递值的时候用法是: v-model:count = "count" 不要忘记后面的“:count”少了是无法显示的

那假设我们不想使用:count的方式呢,那就可以用指定的一个关键字modelValue代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>组件间双向绑定</title><script src="https://unpkg.com/vue@next"></script>
</head>
<body><div id="root"></div>
</body>
<script>const app = Vue.createApp({data() {return {count:1}},methods:{handleCountOneChange(count){this.count = count;}},template: `<div><counter v-model = "count"  @change-count-one="handleCountOneChange"/></div>`});app.component('counter',{props:['modelValue'],methods: {handleItemClick(){this.$emit('change-count-one',this.modelValue + 1);},},template:`<div @click="handleItemClick">{{modelValue}}</div>`});const vm = app.mount('#root');
</script>
</html>

注意此处只能叫modelValue,其他的名字都不可以

总结

其实本文的内容非常简单,就是使用v-model来实现vue组件之间的双向绑定,这里面有个事件的概念,就是 this.$emit('change-count-one',this.count + 1);这个,这个可以理解成一个事件通过$emit()发送,父组件通过@change-count-one="handleCountOneChange"去监听,然后执行对应的操作。这个下次讲。本章就只讲通过v-model的方式来实现组件间双向绑定,但是需要注意父组件传值的属性名若要用自己的值就用v-model:自定义属性名 = "data()方法中定义的值",的方式,子组件通过prop:['自定义属性值']方式接收,或者是使用modelValue作为传值的属性名

http://www.hengruixuexiao.com/news/55713.html

相关文章:

  • wordpress页面镶嵌php如何做网站搜索引擎优化
  • 海事网站开发2024年重大新闻简短
  • 高端服装网站可以免费发帖的网站
  • 做网站的财务会涉及到的科目近三天时政热点
  • 网站后台系统设置免费的黄冈网站有哪些平台
  • 服务网站排名咨询手机优化大师哪个好
  • nas wordpress外网seo优化方案案例
  • 自己做网站推广关键词网站做成app
  • 谁给个网站呀seo免费推广
  • 顶级复刻手表网站刷关键词排名软件
  • 建设厅执业注册中心网站湖南网络优化
  • wordpress旅游网站手机怎么建立网站
  • 做视频搬运哪个网站最赚钱10000个免费货源网站
  • 大连网站建设选高合科技网络营销总结
  • 上饶商城网站建设互联网域名注册查询
  • 义乌的论坛网站建设营销模式有哪些 新型
  • wordpress 主题制作 教程百度快速优化软件
  • 织梦微电影分享网站织梦整站源码如何做个网站推广自己产品
  • wordpress 移动版插件成都网站快速优化排名
  • 怎样申请免费网站平面设计正规培训机构
  • c 做动态网站可以吗seo属于什么职位类型
  • 网站建设方案有哪几种关键词指数
  • zara网站建设需求分析企业关键词优化推荐
  • 自我介绍ppt模板免费seo软文代写
  • 什么网站做兼职可靠营销网站建设推广
  • 宁波网站推广软件百度一下你就知道了百度一下
  • 专做logo网站叫什么企业门户网站的设计与实现
  • 百度收录好的网站排名市场推广计划方案
  • 网站制作需要学习什么西安百度推广开户多少钱
  • wordpress怎么使用插件搜索引擎优化方案