| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Vue3学习之旅--Composition-API-入门篇 -> 正文阅读 |
|
[JavaScript知识库]Vue3学习之旅--Composition-API-入门篇 |
文章目录vue3笔记 Vue3-Composition-API(一)前置补充认识Mixin目前我们是使用组件化的方式在开发整个Vue的应用程序,但是组件和组件之间有时候会存在相同的代码逻辑,我 们希望对相同的代码逻辑进行抽取。 在Vue2和Vue3中都支持的一种方式就是使用Mixin来完成:
Mixin的基本使用Mixin的合并规则如果Mixin对象中的选项和组件对象中的选项发生了冲突,那么Vue会如何操作呢? 这里分成不同的情况来进行处理; 情况一:如果是data函数的返回值对象
情况二:如何生命周期钩子函数
情况三:值为对象的选项,例如 methods、components 和 directives,将被合并为同一个对象。
全局混入Mixin如果组件中的某些选项,是所有的组件都需要拥有的,那么这个时候我们可以使用全局的mixin:
extends另外一个类似于Mixin的方式是通过extends属性: 允许声明扩展另外一个组件,类似于Mixins; 在开发中extends用的非常少,在Vue2中比较推荐大家使用Mixin,而在Vue3中推荐使用Composition API。 Options API的弊端在Vue2中,我们编写组件的方式是Options API:
但是这种代码有一个很大的弊端:
如果我们能将同一个逻辑关注 点相关的代码收集在一起会更 好。 这就是Composition API想 要做的事情,以及可以帮助我 们完成的事情。 也有人把Vue Composition API简称为VCA。 认识Composition API那么既然知道Composition API想要帮助我们做什么事情,接下来看一下到底是怎么做呢?
setup其实就是组件的另外一个选项:
接下来我们一起学习这个函数的使用
setup函数的参数我们先来研究一个setup函数的参数,它主要有两个参数:
props非常好理解,它其实就是父组件传递过来的属性会被放到props对象中,我们在setup中如果需要使用,那么就可 以直接通过props参数获取:
另外一个参数是context,我们也称之为是一个SetupContext,它里面包含三个属性:
setup函数的返回值setup既然是一个函数,那么它也可以有返回值,它的返回值用来做什么呢?
甚至是我们可以返回一个执行函数来代替在methods中定义的方法: 但是,如果我们将 counter 在 increment 或者 decrement进行操作时,是否可以实现界面的响应式呢?
setup不可以使用this官方关于this有这样一段描述
Reactive API如果想为在setup中定义的数据提供响应式的特性,那么我们可以使用reactive的函数 那么这是什么原因呢?为什么就可以变成响应式的呢?
Ref API(尤大大推荐使用)reactive API对传入的类型是有限制的,它要求我们必须传入的是一个对象或者数组类型: 如果我们传入一个基本数据类型(String、Number、Boolean)会报一个警告; 这个时候Vue3给我们提供了另外一个API:ref API
这里有两个注意事项:
Ref自动解包模板中的解包是浅层的解包,如果我们的代码是下面的方式,现在也可以自动解包了: 如果我们将ref放到一个reactive的属性当中,那么在模板中使用时,它会自动解包: 认识readonly我们通过reactive或者ref可以获取到一个响应式的对象,但是某些情况下,我们传入给其他地方(组件)的这个 响应式对象希望在另外一个地方(组件)被使用,但是不能被修改,这个时候如何防止这种情况的出现呢?
在开发中常见的readonly方法会传入三个类型的参数:
readonly的使用在readonly的使用过程中,有如下规则:
readonly的应用那么这个readonly有什么用呢? 在我们传递给其他组件数据时,往往希望其他组件使用我们传递的内容,但是不允许它们修改时,就可以使用 readonly了 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/26 17:15:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |