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

wordpress bae 云存储东莞百度seo新网站快速排名

wordpress bae 云存储,东莞百度seo新网站快速排名,缙云企业网站建设,找设计方案的网站一、Vue2 实现自定义组件双向数据绑定 ① v-model 实现双向数据绑定 在vue2中,子组件上使用v-model的值默认绑定到子组件的props.value属性上,由于子组件不能改变父组件传来的属性,所以需要通过$emit触发事件使得父组件中数据的变化&#xf…

一、Vue2 实现自定义组件双向数据绑定

v-model 实现双向数据绑定

  在vue2中,子组件上使用v-model的值默认绑定到子组件的props.value属性上,由于子组件不能改变父组件传来的属性,所以需要通过$emit触发事件使得父组件中数据的变化,然后再同步到子组件。vue2默认触发v-model数据变化的事件为input

使用如下:

子组件MySon

<template><div><div>双向数据绑定:{{$props.value}}</div><div><button @click="addValue">点击++</button></div></div>
</template>
​
<script>
export default {name: "MySon",props: ['value'],methods: {addValue() {//  触发父组件中v-model绑定数据的变化,由于不能改变props数据中的值,所以不要写this.$props.value++这样的操作this.$emit('input', this.$props.value + 1)}}
}
</script>

如果希望改变接收v-model的属性或改变触发v-model数据变化的事件,可通过model:{}配置实现,如:

<template><div><div>双向数据绑定:{{$props.value666}}</div><div><button @click="addValue666">点击++</button></div></div>
</template>
​
<script>
export default {name: "MySon",props: ['value666'],// --> 配置接收v-model数据的属性以及改变数据的事件 <--model: {prop: 'value666',event: 'updateValue666'},methods: {addValue666() {this.$emit('updateValue666', this.$props.value666 + 1)}}
}
</script>

父组件

<template><div id="app"><MySon v-model="num"></MySon></div>
</template>
​
<script>
import MySon from "@/components/MySon.vue";
export default {name: 'App',components: {//注册子组件MySon},watch: {//  监视num数据的变化  num(newValue, oldValue) {console.log('num: ' + oldValue + ' -> ' + newValue)},},data() {return {num: 10,}},
}
</script>

.sync 实现子组件多个数据双向绑定

Vue2中使用v-model只能使用一次,如果要实现多个双向数据绑定,可以借助.sync修饰,使用语法为 :属性.sync="数据" ,用这种绑定代替v-model,触发数据改变的事件为update:属性名

使用如下:

子组件

<template><div><div>sync双向数据绑定:{{$props.data}}</div><div><button @click="addData">点击++</button></div></div>
</template>
​
<script>
export default {name: "MySon",//    用props.data属性接收双向绑定的数据  props: ['data'],methods: {addData() {//    触发 update:data 事件改变父组件中绑定的值   this.$emit('update:data', this.$props.data + 1)}}
}
</script>

父组件

<template><div id="app"><!-- 用 :data.sync 将数据双向绑定到子组件的data属性上 -->  <MySon :data.sync="num"></MySon></div>
</template>
​
<script>
import MySon from "@/components/MySon.vue";
export default {name: 'App',components: {MySon},watch: {num(newValue, oldValue) {console.log('num: ' + oldValue + ' -> ' + newValue)}},data() {return {num: 10}},
}
</script>

至于为什么子组件要通过$emit('update:属性名', 数据);来触发父组件数据变化,原因如下:

<MySon :data.sync="num"></MySon>||\/等价于
<MySon :data="num" @update:data="(newData) => {num = newData}"></MySon>

二、Vue3 实现双向数据绑定

在Vue3中,v-model可以实现多个数据双向数据绑定,同时.sync修饰符已经不再生效。

v-model 实现双向数据绑定

vue3中子组件上使用v-model绑定的数据默认传到子组件的props.modelValue属性上(vue2是props.value属性),并且默认触发数据变化的事件为update:modelValuevue2为input

使用如下:

子组件

<template><div><div>双向数据绑定modelValue:{{props.modelValue}}</div><div><button @click="addModelValue">点击++</button></div></div>
</template>
<script setup>//    props.modelValue接收v-model绑定的数据const props = defineProps(['modelValue'])const emit = defineEmits(['update:modelValue'])function addModelValue(){//  触发父组件中双向绑定数据的变化emit('update:modelValue', props.modelValue + 1)}
</script>

父组件

<template><Son v-model="num"></Son>
</template>
​
<script setup>import {ref, watch} from "vue";import Son from "@/components/Son.vue";  const num = ref(0)//    监视num数据变化watch(num, (newValue, oldValue) => {console.log('num: ' + oldValue + '->' + newValue)})
</script>

v-model: 属性 实现多个数据双向绑定

数据绑定语法:v-model:属性="数据"

触发数据变化的事件:update:属性

使用如下:

子组件

<template><div><div>双向数据绑定data:{{props.data}}</div><div><button @click="addData">点击++</button></div></div>
</template>
​
<script setup>const props = defineProps(['data'])const emit = defineEmits(['update:data'])const addData = () => {emit('update:data', props.data + 1)}
</script>

父组件

<template><!-- 将num数据绑定到子组件的data属性上 --><Son v-model:data="num"></Son>
</template>
<script setup>import {ref, watch} from "vue";import Son from "@/components/Son.vue";const num = ref(0)watch(num, (newValue, oldValue) => {console.log('num: ' + oldValue + '->' + newValue)})
</script>

http://www.yidumall.com/news/62406.html

相关文章:

  • 做私彩网站需注意什么互联网营销有哪些方式
  • 想要将网站信息插到文本链接怎么做网站优化内容
  • 做软件项目的网站长沙官网seo分析
  • 邯郸建设局网站资质申报seo网络推广招聘
  • 学工系统网站建设的意义网络营销概念
  • 陕西建设厅继续教育网站企业培训内容有哪些
  • 织梦网站地图在线生成seo公司多少钱
  • 网站中所有标签今日新闻 最新消息 大事
  • 安康市住房和城乡建设局网站广州营销seo
  • 想在网站里添加超链接怎么做河南网站推广公司
  • 电子商务网站开发的基本原则百度提交网站的入口地址
  • 拟采用建站技术windows优化大师的特点
  • 如何免费建设公司网站上海站优云网络科技有限公司
  • dw做单页网站教程搜狗搜索引擎入口
  • 大型高迸发网站用什么语言做杭州网站推广大全
  • 青岛建筑模板网站seo是什么意思
  • 微网站绑定域名省好多会员app
  • 建站代理加盟模板免费下载网站
  • 网站做跳转付款链接生成器
  • 网站建设需要些什么软件十大免费推广平台
  • 南澳做网站网站关键词优化wang
  • 怎么接做网站私单品牌线上推广方式
  • 外文网站设计除了百度指数还有哪些指数
  • 安徽网站建设方案开发自动seo系统
  • 手机网站开发学习外贸是做什么的
  • 深圳网站制作公司售后万能bt搜索引擎网站
  • 邯郸网站建设做公司宁波seo怎么做优化
  • 做网站需知百度客服中心人工电话
  • 大型网站二次开发方案常用的网络推广的方法有哪些
  • 发明迷网站豆渣做豆腐轻松seo优化排名