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

门户网站开发哪家好网站开发流程步骤

门户网站开发哪家好,网站开发流程步骤,免费软件app下载大全,引导交互 网站对于Vue 2&#xff0c;你不能直接用v-model绑定对象&#xff0c;但可以通过在子组件内部处理value prop的变化并触发input事件来模拟这一行为。 父组件A 1<template> 2 <ComponentB v-model"item" prop-names"addressId,date,startTime,endTime&quo…

对于Vue 2,你不能直接用v-model绑定对象,但可以通过在子组件内部处理value prop的变化并触发input事件来模拟这一行为。

父组件A
1<template>
2  <ComponentB v-model="item" prop-names="addressId,date,startTime,endTime"/>
3  <ComponentC v-model="item" prop-names="phone,numPeople,who"/>
4  <ComponentD v-model="content"/>
5</template>
6
7<script>
8import ComponentB from './ComponentB.vue';
9import ComponentC from './ComponentC.vue';
10import ComponentD from './ComponentD.vue';
11
12export default {
13  components: { ComponentB, ComponentC, ComponentD },
14  data() {
15    return {
16      item: {
17        addressId: 1,
18        date: '',
19        startTime: '',
20        endTime: '',
21        phone: '',
22        numPeople: '',
23        who: '',
24        content: '',
25      },
26    };
27  },
28};
29</script>
子组件B和C

在子组件B和C中,你需要定义props来接收父组件传递的数据,并提供一个更新数据的方法来触发input事件,让父组件知道数据已变更。

1<!-- ComponentB.vue 和 ComponentC.vue 的模板部分 -->
2<!-- 注意这里简化了逻辑,实际需要根据prop-names动态处理 -->
3<input v-model="localItem.date" @input="updateValue('date', localItem.date)"/>
4<!-- 其他输入框类似 -->
5
6<script>
7export default {
8  props: ['value', 'propNames'], // value是从父组件传入的数据,propNames是要处理的属性名
9  computed: {
10    localItem: {
11      get() { return this.value; },
12      set(value) { this.$emit('input', value); }
13    },
14  },
15  methods: {
16    updateValue(prop, value) {
17      const updatedItem = {...this.localItem, [prop]: value};
18      this.$emit('input', updatedItem);
19    },
20  },
21};
22</script>

localItem 计算属性

在Vue 2的子组件中,我们通常会通过props接收父组件传递的数据。然而,直接修改props是不被允许的,因为它们应该是只读的。为了能够修改这些数据并反映到父组件,我们通常会创建一个局部的副本。在子组件B和C的例子中,我们使用了一个计算属性localItem来实现这一点。

  • get: 当我们访问localItem时,它返回从父组件接收到的value(即原始数据对象)。
  • set: 当我们尝试修改localItem时,触发的函数会发出一个input事件给父组件,同时传递修改后的值。这是因为Vue中v-model本质上是一个:value绑定加上@input事件监听器的简写形式。通过$emit('input', newValue),我们可以告诉父组件数据已经变化,并提供了新的数据。

updateValue() 方法

updateValue()方法是用于处理数据更新逻辑的自定义方法。它的作用是当子组件内的表单元素(如<input>)发生变化时,捕获这个变化并更新对应的属性值,随后通知父组件数据已被修改。

  • 参数:这个方法接受两个参数,第一个是属性名称(prop),第二个是该属性的新值(value)。
  • 逻辑
    1. 它首先使用ES6的展开运算符{...}和计算属性的新值来创建原对象的一个浅拷贝,并更新指定属性的值。这样做是为了确保其他未修改的属性值保持不变。
    2. 然后,通过调用this.$emit('input', updatedItem),将更新后的对象发送回父组件。这里的input事件是Vue用来同步v-model数据的关键,父组件监听到这个事件后,会用新值替换原有的item对象,从而实现了双向绑定的效果。

综上所述,localItemupdateValue()共同协作,使得子组件能够安全地修改从父组件传入的数据,并通过事件机制通知父组件数据的变化,从而在Vue 2应用中实现了数据的双向绑定。

 

http://www.yayakq.cn/news/315197/

相关文章:

  • it行业做网站一个月多少钱青岛制作网站软件
  • 模板建站广团一般网站建设多少钱便宜的网站好吗
  • 校网站建设方案网站域名的组成
  • 免费做网站公司ydwzjswordpress wptouch
  • 青州网站定制张雪峰谈服装与服饰设计专业
  • 大学生网站设计作业动画青龙县建设局网站
  • 茂名网站建设咨询wordpress 必备插件
  • 做字幕模板下载网站wordpress添加 logo
  • 快速搭建网站软件网站建设手机app
  • 网站建设试题网站建设一下需要多少费用
  • 宁波制作网站公司国内免费无版权图片素材网站
  • 威海哪家网站做的好哈尔滨免费自助建站模板
  • 网站视图错位html教程视频教程
  • 杭州企业网站设计模板做网站的都是直男癌吗
  • wordpress网站速度检测网站建设p2p
  • 英文在线购物网站建设企业展厅设计公司价格表
  • 郑州社交网站开发网站建设方案可行性
  • 自用电脑做网站营销网站建设的重要性
  • 男女情感类网站网站建设歺首选金手指14
  • 厦门网站建设满山红怎么样创建做零食山楂的网站
  • 网站建设0基础学起网站开发费用鉴定
  • 个人主题网站鸽WordPress主题
  • wordpress 删除 评论超级优化系统
  • 哪个网站可以接图纸做海南省住房和城乡建设厅官网网站首页
  • 科技网站哪个好建设网站对企业有什么好处
  • 凤泉网站建设建立网站第一步怎么做
  • 如何做网站建设团队建设第五次普查数据自网站怎么做
  • 类似情侣空间的网站开发电子商务网站建设合同书
  • 网站建设科技互联网行业市场分析
  • 网站推广总结客户网站回访