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

枣庄做网站制作建网站石家庄

枣庄做网站制作,建网站石家庄,软件项目管理的内容,厦门seo起梦网络科技vue2和vue3区别 浅析 数据响应原理 vue2 通过 Object.defineProperty 来更新数据,只会监听使用Object.defineProperty创建的(初始化)的数据,并通过订阅方式进行发布,在初始化之外的数据,不会受到监听; 在数据初始化时&#xf…

vue2和vue3区别 浅析

数据响应原理

vue2

通过 Object.defineProperty 来更新数据,只会监听使用Object.defineProperty创建的(初始化)的数据,并通过订阅方式进行发布,在初始化之外的数据,不会受到监听;

在数据初始化时,定义一个对象

data() {return {obj:{id:1,name: '标题'}}
}

这时vue是通过Object.defineProperty()obj对象的idname属性 getset行为监听成为响应式,如果在初始化之后,再往obj里面新增属性,就不会产生响应式效果;

解决方法可以使用 vue提供的全局方法Vue.set( target, propertyName/index, value ) 修改成为响应式;

vue3

1:使用proxy代理对象,

使用reactive修改复杂数据,例如 objectarray,通过创建proxy实例对象,对数据进行处理

优势:1:defineProperty()只能对某个属性进行监听,不能对整个对象进行监听;

页面结构

vue2使用选项类型api,data,computed,methds,通过属性的方式进行书写;

vue3使用合成型api书写,以方法的方式进行分块书写不同的功能点;

vue3 在基本使用中案例使用的是setup()钩子形式,同时也提示了使用<script setup>人体工学的方式;<script setup>setup()方法的语法糖;

<script setup>书写起来的优势:

  1. 更简洁的代码;

  2. 可以使用typescript声明prop和自定义事件;

  3. 更好的运行时性能;

  4. 更好的IDE类型推导性能;

v-model

vue2的v-model的组件使用方式在官网上也有讲解:在组件上使用 表单输入绑定 — Vue.js

texttextarea元素使用value propinput事件

checkboxradio使用的 value propchange事件

select 使用的也是 value propchange事件

例如:

<input type="text" :value="" @input="$emit('input',$event.target.value)"></input>
<template><div><input type="text" :value="value" @input="$emit('input',$event.target.value)"></div>
</template>
​
<script>
export default {props: {value: String,  // 默认接收一个名为 value 的 prop}
}
</script>

使用 input的原生属性 获取内容再提交 @input="$emit('input',$event.target.value)"

在vue3的组件中实现vue2 v-model方式

定义一个input组件

声明html

<template><div><input type="text" :value="value" @input="$emit('input', handleInputChange($event))" /><!-- @input="$emit('input', $event.target.value) --></div>
</template>

项目中做了类型检查,所以$event.target.value不能直接使用,做了一个函数处理类型 handleInputChange

js部分

<script lang="ts" setup>
withDefaults(defineProps<{value: string}>(),{value: '',}
)
const handleInputChange = (event: Event) => (event.target as HTMLInputElement).value
​
defineEmits(['input'])
</script>

因为我用到的是 ts,所以里面有withDefaults

在父组件中正常引入子组件,并在html中使用

子组件:<my-input :value="'msg'" @input="handlerChanger"></my-input>

页面显示是我给的默认值:msg, input输入内容时,也会在 handlerChanger中显示

vue3更新的方式 是把vue2 html中默认的input 改成 update:modelValue

vue3 废除 model 选项和 .sync 修饰符

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

相关文章:

  • qianhu微建站成全视频免费观看在线看第7季电视剧
  • 好的提升设计师网站用dw做的网站怎么发布
  • 深圳市门户网站建设企业h5页面制作软件教程
  • 做网站选用什么域名比较好网站建设表单教案
  • 安徽鸿顺鑫城建设集团网站公网ip做网站访问不
  • 爱奇艺的网站是用什么做的哪里可以做期货网站平台
  • 网站的360度全景图片怎么做公司名称变更说明函
  • 酒店预订网站开发做外贸网站注意
  • 如何很好的进行网站的内部推广广州各类外贸网站
  • 徐州专业网站建设高端网站建设的流程是什么
  • 青岛新公司网站建设推广拼多多商品关键词搜索排名
  • 网站建设及数据分析织梦做的网站打不开网页
  • 盐城市建设银行网站做网站的域名和空间是什么意思
  • 天河门户网站建设公司做网站的硬件成本
  • 一起做网店官方网站怎样制作图片网站
  • 江都建设银行网站包头做网站的
  • 虚拟网站源码冰雪复古传奇手游官网
  • 长沙做网站最好的公司有哪些霸州做网站1766534168
  • 商务网站建设服务商哪个公司做网站好 知乎
  • 怎么让网站排名上去越秀seo搜索引擎优化
  • 推广代理平台在线seo外链工具
  • 教育网站颜色博罗做网站公司
  • wordpress 手机界面蚌埠网站关键词优化
  • 毕业生网站建设方案书dedecms告侵权
  • php mysql做网站技术支持 随州网站建设
  • 网站备案查询 api安仁网络推广软件定制开发
  • 网站建设方案计划书百度公司招聘信息
  • 网盘做网站空间针对茅台酒企业网站建设方案
  • 宝安网站设计招聘信息百度一下做网站
  • 手机网站设计报告模板永州网站制作建设