首页 > 其他分享 >Vue3笔记

Vue3笔记

时间:2024-05-11 20:20:12浏览次数:23  
标签:函数 对象 setup 笔记 响应 Vue3 app 属性

1. man.js文件

// 引入一个工厂函数 createApp
import { createApp } from 'vue'
import App from './App.vue'

// 创建应用实例对象 app --- 类似于vue2中的vm,但app比vm更'轻'
const app = createApp(App)
console.log('app', app)
app.mount('#app')

2. setup函数

  是vue3中一个新的配置,值是一个函数。组件中所用到的数据,方法等等,均要配置在setup中。setup有两种返回值,若返回对象,则对象中的属性,方法,在模板中均可以直接使用。若返回一个渲染函数,则可以自定义渲染内容。一般不推荐vue2和vue3混用,若data和setup混用,则data可以访问setup中的属性,方法,setup不能访问data中的内容,如果有重名,setup的值优先使用。setup不能用async修饰。

3. ref函数

作用:定义响应式数据。

语法:const xxx = ref(initValue)

  创建一个包含响应式数据的引用对象(reference对象,简称ref对象)。

  js中操作数据:xxx.value

  模板中读取数据:不需要.value, 直接 <div>{{xxx}}</div>

备注:

  接收的数据可以是:基本类型、也可以是对象类型。

  基本类型的数据:响应式依然是靠Object.defineProperty()的get与set完成的。

  对象类型的数据:内部使用了vue3.0中的一个新函数reactive函数。

3. reactive函数 

作用:定义一个对象类型的响应数据(基本类型不要用它,要用ref函数)

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

reactive定义的响应式数据是“深层次的”。

内部基于ES6的Proxy实现,通过代理对象操作源对象内部数据进行操作。

4. vue3.0 中的响应式原理

  vue2.0响应式的实现原理:

  对象类型:通过Object.defineProperty()对属性的读取,修改进行拦截(数据劫持)。

  数组类型:通过 重写更新数组的一系列方法来实现拦截。(对数组的变更方法进行了包裹)。

  存在问题:新增属性,删除属性,界面不会更新。直接通过下标修改数组,界面不会自动更新。

     vue3.0响应式实现原理:

  通过Proxy(代理):拦截对象中任意属性的变化,包括:属性值的读写,属性的添加,属性的删除等。

  通过Reflect(反射):对被代理对象的属性进行操作。

标签:函数,对象,setup,笔记,响应,Vue3,app,属性
From: https://www.cnblogs.com/record-100/p/18187100

相关文章

  • 笛卡尔树学习笔记
    笛卡尔树引入是一种二叉树,每个节点由一个二元组\((k,w)\)形成。\(k\)满足二叉搜索树的性质,\(w\)满足堆的性质。上面这棵笛卡尔树相当于把数组元素值当作键值\(w\),而把数组下标当作键值\(k\)。显然可以发现,这棵树的键值\(k\)满足二叉搜索树的性质,而键值\(w\)满足小根......
  • 复习笔记
    1.对变量延迟初始化延迟初始化使用的是lateinit关键字,它可以告诉Kotlin编译器,我会在晚些时候对这个变量进行初始化,这样就不用在一开始的时候将它赋值为null。当你对一个全局变量使用了lateinit关键字时,请一定要确保它在被任何地方调用之前已经完成了初始化工作,否则Kotlin将无法......
  • 软件测评笔记04--操作系统
    编译原理高级语言源程序中的错误分为两类:语法错误和语义错误,其中语义错误可分为静态语义和动态语义错误语法错误:语言结构上的错误静态语义错误:编译时能发现的程序含义上的错误动态语义错误:只有程序运行时才能表现出来 程序编译过程过程:词法分析、语法分析、语义分析词法......
  • 分块 学习笔记
    什么是分块分块,顾名思义是一种将数据分成多块,以实现一些功能的算法。分块算法实质上是一种是通过将数据分成多块后在每块上打标记以实现快速区间修改,区间查询的一种算法。其均摊时间复杂度为\(O(\sqrt{n})\)分块的具体操作分块voidcreate(){ t=sqrt(n); for(inti=1;i<......
  • DSP学习笔记之IIC
    IIC简介IIC总线是同步通信的一种特殊形式,是一种串行,半双工的通信,I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。IIC分为硬件IIC和软件IIC,DSP中有硬件IIC,但是不方便拓展,所以日常使用时使用软件IIC居多。IIC总线通信过程主机发送起始信号启用总线主机发送......
  • DSP学习笔记之SPI
    DSP学习笔记之SPISPI介绍SPI的全称是"SerialPeripheralInterface",意为串行外围接口。SPI是一种高速的,全双工,同步的通信总线,SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、C......
  • Vue3 项目
    创建Vue3项目的步骤如下:安装Node.jsVue3需要依赖Node.js环境,因此需要先安装Node.js。可以从官网下载Node.js的安装包并安装,也可以使用包管理器安装,例如在Ubuntu上可以使用以下命令安装:sudoapt-getupdatesudoapt-getinstallnodejssudoapt-getinstallnpm......
  • 软件测评笔记03--软件测试
    软件测试的对象程序、数据、文档 ,跟人没有关系 测试用例要设计有效的功能测试用例,应该做到1、测试用例应该100%地覆盖测试业务需求2、利用场景法模拟核心业务流程的正确执行3、利用场景法设计测试用例时,往往是一个业务流程需要多条验证数据4、利用边界值法设计测试用例,......
  • 【vue3入门】-【22】 组件attribute透传
    透传Attribute透传Attribute指的是传递给一个组件,却没有被该组件声明为props或emits的attribute或者v-on事件监听器。最常见的列子就是class、style和id。当一个组件以单个元素为根路径渲染时,透传的attribute会自动被添加到根元素上app.vue<template><!--在引用的组件上使......
  • 【学习笔记】Python 装饰器
    装饰器是Python中一种非常强大的语法特性,它允许你在不改变函数代码的情况下,动态地增加功能。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。下面是Python装饰器的基本语法:defdecorator_function(original_function):defwrapper_function(*args,*......