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

电商批发平台网站免费b站推广网站在线

电商批发平台网站,免费b站推广网站在线,wordpress svn,嘉兴做网站文章目录 Vue3简介创建Vue3工程使用vite创建vue-cli方式 常用 Composition API启动项 - setup()setup的执行时机与参数 响应式原理vue2中的响应式vue3中的响应式ref函数reactive函数reactive与ref对比 计算属性 - computed监视属性 - watchwatchEffect Vue3生命周期自定义hook函…

文章目录

  • Vue3简介
    • 创建Vue3工程
      • 使用vite创建
      • vue-cli方式
  • 常用 Composition API
    • 启动项 - setup()
      • setup的执行时机与参数
    • 响应式原理
      • vue2中的响应式
      • vue3中的响应式
      • ref函数
      • reactive函数
      • reactive与ref对比
    • 计算属性 - computed
    • 监视属性 - watch
      • watchEffect
    • Vue3生命周期
    • 自定义hook函数
    • toRef
  • 其他Composition API
    • shallowReactive与shallowRef
    • readonly 与readonly
    • toRaw与markRaw
    • customRef
    • provide与inject
    • 对响应式的数据进行判断
  • 新的组件
    • Fragment(片段)
    • Teleport(传送)
    • Suspense(悬浮)

Vue3简介

Vue3带来了:

  • 1、性能的提升:
    • 打包大小减少41%
    • 初次渲染快55%, 更新渲染快133%
    • 内存减少54%
    • ……
  • 2、源码的升级
    • 使用Proxy代替defineProperty实现响应式
    • 重写虚拟DOM的实现和Tree-Shaking
  • 3、拥抱TypeScript
  • 4、新的特性
      1. Composition API(组合API) (用前要引入)
        ○ setup配置
        ○ ref与reactive
        ○ watch与watchEffect
        ○ provide与inject
        ○ …
      1. 新的内置组件
        ○ Fragment
        ○ Teleport
        ○ Suspense
      1. 其他改变
        ○ 新的生命周期钩子
        ○ data 选项应始终被声明为一个函数
        ○ 移除keyCode支持作为 v-on 的修饰符
        ○ …

创建Vue3工程

使用vite创建

官方文档:https://v3.cn.vuejs.org/guide/installation.html#vite

vite官网:https://vitejs.cn

  • 什么是vite?—— 新一代前端构建工具。
  • 优势如下:
    • 开发环境中,无需打包操作,可快速的冷启动。
    • 轻量快速的热重载(HMR)。
    • 真正的按需编译,不再等待整个应用编译完成。
  • 传统构建 与 vite构建对比图

在这里插入图片描述
在这里插入图片描述

vue-cli方式

VUE3官方文档

## 查看@vue/cli版本,确保@vue/cli版本在4.5.0以上
vue --version
## 安装或者升级你的@vue/cli
npm install -g @vue/cli
## 创建
vue create vue_test
## 启动
cd vue_test
npm run serve

在这里插入图片描述

常用 Composition API

启动项 - setup()

setup是所有Composition AIP(组合API)“表演的舞台”。

  • 1、组件中所用到的:数据、方法等均要配置在setup中,不需要专门的datamethods等配置项了。
  • 2、setup函数的两种返回值:
    • 若返回一个对象,则对象中的属性、方法在模板中均可以直接使用。
    • 若返回一个渲染函数:则可以自定义渲染内容。(了解)

在这里插入图片描述
在这里插入图片描述

setup的执行时机与参数

setup()执行的时机是先于beforecreated的,此时vue实例尚未创建,因此setup()函数内部thisundefined

setup()可以接收两个参数:

  • props:值为一个对象,包含了组件外部传递过来,且在组件内部声明接收了的属性项。
  • context:上下文对象,主要包含下边3个属性:
    • attrs:值为对象,包含组件外部传递过来,且在本组件中props配置中没有声明的属性,该对象也存在于this.$attrs
    • slots:收到的插槽内容,相当于 this.$slots
    • emits:分发自定义事件的函数,相当于this.$emit

响应式原理

vue2中的响应式

在vue2中,通过Object.defineProperty()对对象属性的读取、修改进行了拦截(数据劫持)。对数组类型,通过重写数组更新的一系列方法实现拦截,对其变更方法进行了包裹。

这种响应式实现存在以下问题:

  • 新增属性、删除属性,界面不会更新
  • 直接通过下标修改数组,界面不会自动更新。

vue3中的响应式

  • 1、通过Proxy(代理):拦截对象中任意属性的变化,包含属性值的读写、属性的添加、属性的增删
  • 2、通过Reflect(反射):对被代理对象的属性进行操作

ref函数

在setup中安置的数据项并不会直接被vue监测,如果想要使其被vue监测,实现响应式的更新,应该使用ref函数,其作用是定义一个响应式的数据的引用对象(reference object)

使用ref函数构建的数据项类型是一个RefImpl引用实现类型,对RefImpl对象的value属性更新,对于Vue框架是可见的,但在模板中使用其时,不必加value属性,Vue框架会自动解析到其中的value。
在这里插入图片描述
ref函数的参数也可以是一个对象,如果是对象,其value属性是一个Proxy对象,拥有原对象的每一个属性,对其的修改也是响应式的。
在这里插入图片描述

reactive函数

reactive函数的作用是定义一个对象(数组)类型的响应式数据,基本类型用refreactive只能处理对象类型的数据。

语法:const 代理对象 = reactive(源对象)接收一个对象或数组,返回其代理对象(Proxy实例)

reactive定义的响应式数据是深层次的,即对其多层数据的更改同样是响应式。

在这里插入图片描述

reactive与ref对比

1、从定义数据角度:

  • ref用于定义基本数据类型
  • reactive用来定义:对象或者数组类型
  • ref也可以用来定义对象(数组)类型数据,它内部会自动通过reactive转为代理对象。
    2、从原理角度:
  • ref通过Object.defineProperty()的get与set实现响应式(数据劫持)
  • reactive通过使用Proxy实现响应式,并通过Reflect操作源对象内部的数据。

3、从使用角度:

  • ref定义的数据,操作数据需要.value,模板使用不需要.value
  • reactive定义的数据:操作数据与模板使用均不需要.value

计算属性 - computed

Vue3中的computed不再是内置选项,需要import导入,随后在setup()中配置,配置方式与Vue2中基本一致。
在这里插入图片描述

监视属性 - watch

watch属性在Vue3的组合式API中,也不再是内置属性,在需要使用时进行import。

监视属性,当监视对象分为refreactive时,有下边几种不同的情况。

1、当监视ref定义的响应式数据
在这里插入图片描述
watch函数还有第三个选填参数,配置一个对象,设置immediate、deep是否为true。

在这里插入图片描述

2、监视ref定义的多个响应式数据
可以写多个watch函数,当然也可以写为数组形式,当写为数组形式监视多个数据时,handle回调中 newValue、oldValue也是一个数组,根据下标判断,是哪个具体的数据。
在这里插入图片描述
3、监视reactive定义的一个响应式数据
注意:这种虽然可以触发监视逻辑,但是无法获取正确的odlvalue,console结果中old和new的值都是新的值
在这里插入图片描述
对于reactive定义的响应式数据,进行监视,是强制开启深度监视的,即便你配置deep为false也是无效,这与reactive的实现方式有关。

4、监视reactive定义的响应式对象的某个属性。
注意:此时的监视对象需要写为函数类型,因为假如你直接使用person.name,它其实是一个普通类型的值,没有响应式效果。
在这里插入图片描述

5、监视reactive定义的响应式属性的多个属性。
数组中每个元素都得写为函数类型。
在这里插入图片描述

总结:
一般在生产情况中,使用reactive,但此时oldValue会失效,如果要解决这个问题,可以将其单独拎出来,使用ref

watchEffect

  • watchEffect,不需要证明具体监视哪个属性,因此写起来更加高效,即effect。
  • watchEffect有点像computed,监视回调中用到哪个属性,就监视哪个属性,但computed注重计算出来的值(回调函数返回值),所以必须写返回值。而wacthEffect更加注重过程,回调函数的函数体,所以不用写返回值。

在这里插入图片描述

Vue3生命周期

1、Vue3中可以继续使用Vue2中生命周期的钩子,但有两个被改名了:

  • beforeDestroy改名为beforeUnmount
  • destroyed改名为unmounted

2、Vue3中也提供了组合式API形式的生命周期钩子,与Vue2中的钩子对应关系如下:

注意:前两个函数,beforeCreate与Create 相当于Vue3中的setup阶段
在这里插入图片描述

自定义hook函数

这里的hook本质上是一个函数,目的是将setup中可以复用的组合式API进行一个封装,类似于Vue2中mixin。

自定义hook的优势也与mixin一样,复用代码,使得setup中写的逻辑更加清晰易懂。

step1:定义hook文件夹,实现定义hook逻辑的js文件
在这里插入图片描述
step2:引入并在setup中直接使用。
在这里插入图片描述

toRef

  • 作用:创建一个ref对象,使其value属性指向另一个对象的某个属性,假如我们要将响应式对象中某个属性单独提供给外部使用时,可以使用ref。
  • 语法:const name = toRef(person, 'name')
  • 扩展:toRefs,批量创建,不再需要第二个参数,会将对象的每一个属性批量创建为同名的RefImpl。

在这里插入图片描述
使用toRef建立引用绑定关系后,在template中就可以直接使用这些属性,且不会丢失响应式特性:
在这里插入图片描述
使用toRefs结合...语法:
在这里插入图片描述

其他Composition API

shallowReactive与shallowRef

shallow是浅层次的意思。

  • shallowReactive:只处理对象最外层属性的响应式(浅响应式)
  • shallowRef:只处理基本数据类型的响应式,不进行对象的响应式处理。
  • 什么时候用?
    • 如果有一个对象数据,结构比较深,只希望最外层属性响应式变化,使用shallowReactive
    • 如果有一个对象数据,后续功能不会修改对象中的属性,而是生成新的对象替换,使用shallowRef

readonly 与readonly

toRaw与markRaw

customRef

provide与inject

对响应式的数据进行判断

  • isRef:检查一个值是否为一个ref对象
  • isReactive:检查一个对象是否是由reactive创建的响应式代理
  • isReadonly:检查一个对象是否是由readonly创建的只读代理
  • isProxy:检查一个对象是否是由reactive或者readonly创建的代理。

新的组件

Fragment(片段)

  • 在Vue2中:组件必须有一个根标签div
  • 在Vue3中:组件可以没有根标签,内部会将多个标签包含在一个Fragment的虚拟元素中
  • 这样的好处在于减少标签层级,减小内存占用

Teleport(传送)

teleport是一种能够将我们的组件的HTML结构移动到指定位置的技术。
在这里插入图片描述

Suspense(悬浮)

等待异步组件时,渲染一些额外的组件,优化用户体验

http://www.khdw.cn/news/1021.html

相关文章:

  • 电商网站话费充值怎么做我想在百度上做广告怎么做
  • 化妆品网站建设策划方案app推广怎么联系一手代理
  • 网站可以自己做服务器么网页设计制作
  • 新昌县住房和城乡建设局网站免费网站seo排名优化
  • 如何在网站上做关键词黑帽seo优化
  • 俄语网站建设注意事项发广告推广平台
  • 网站建设流程书籍口碑营销的优缺点
  • 深圳深网站建设服务网站权重一般有几个等级
  • 网站开发 项目的人员分配临沂色度广告有限公司
  • 做微商什么是官方网站歌尔股份砍单
  • 做整合营销的网站北京网站推广排名
  • 网站建设行业细分香港旺道旺国际集团
  • 网站建设数据录入百度主页网址
  • 株洲新站建设南昌百度网站快速排名
  • 虚拟主机网站百度收录提交申请网站
  • 网站开发西安seo优化专家
  • 乌镇网站开发文档怎样优化网站排名靠前
  • 怀化网站建设google chrome谷歌浏览器
  • 设计开发建设网站关键词密度
  • 文章网站后台管理系统培训班报名
  • 定制网站开发报价app下载注册量推广平台
  • asp.net网站建设ppt百度关键词规划师入口
  • 网站建设贝尔利网络优化seo是什么工作
  • 霞浦县网站seo优化排名东莞seo报价
  • 多个域名 一个网站宁波seo网站
  • 有没有做英语题的网站网络营销推广方案ppt
  • arprice插件wordpress优化关键词的公司
  • 变性 wordpress关键词排名优化易下拉软件
  • 什么网站可以做性格测试seo优化范畴
  • 跨境独立站建站平台有哪些定制网站多少钱