ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue3常用 Composition API

2022-01-26 11:32:55  阅读:178  来源: 互联网

标签:name 对象 setup value job API vue3 ref Composition


1.拉开序幕的setup

  1. 理解:Vue3.0中一个新的配置项,值为一个函数。

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

  3. 组件中所用到的:数据、方法等等,均要配置在setup中。

  4. setup函数的两种返回值:

    1. 若返回一个对象,则对象中的属性、方法, 在模板中均可以直接使用。(重点关注!)

    2. 若返回一个渲染函数:则可以自定义渲染内容。(了解)

  5. 注意点:

    1. 尽量不要与Vue2.x配置混用

      • Vue2.x配置(data、methos、computed...)中可以访问到setup中的属性、方法。

      • 但在setup中不能访问到Vue2.x配置(data、methos、computed...)。

      • 如果有重名, setup优先。

    2. setup不能是一个async函数,因为返回值不再是return的对象, 而是promise, 模板看不到return对象中的属性。(后期也可以返回一个Promise实例,但需要Suspense和异步组件的配合)

 1 <template>
 2   <h1>一个人的信息</h1>  
 3   <h1>姓名:{{name}}</h1>  
 4   <h1>年龄:{{age}}</h1>  
 5   <h1>工作种类:{{job.type}}</h1>  
 6   <h1>工作薪水:{{job.salary}}</h1>  
 7   <button @click="changeInfo">修改个人信息</button>
 8 </template>
 9 
10 <script>
11 import {ref} from 'vue'
12 export default {
13   name: 'App',
14   setup(){
15     let name = ref("张三")
16     let age = ref(18)
17     let job = ref({
18       type: '前端工程师',
19       salary: '30k'
20     })
21 
22     function changeInfo() {
23       name.value = '李四'
24       age.value = 48
25       job.value.type = 'UI设计师'
26       job.value.salary = '35k'
27     }
28     return {
29       name,
30       age,
31       job,
32       changeInfo
33     }
34   }
35 }
36 </script>

2.ref函数

  • 作用: 定义一个响应式的数据

  • 语法: const xxx = ref(initValue)

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

    • JS中操作数据: xxx.value

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

  • 备注:

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

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

    • 对象类型的数据:内部 “ 求助 ” 了Vue3.0中的一个新函数—— reactive函数。

3.reactive函数

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

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

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

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

 1 <template>
 2   <h1>一个人的信息</h1>  
 3   <h1>姓名:{{name}}</h1>  
 4   <h1>年龄:{{age}}</h1>  
 5   <h1>工作种类:{{job.type}}</h1>  
 6   <h1>工作薪水:{{job.salary}}</h1>  
 7   <button @click="changeInfo">修改个人信息</button>
 8 </template>
 9 
10 <script>
11 import {ref, reactive} from 'vue'
12 export default {
13   name: 'App',
14   setup(){
15     let name = ref("张三")
16     let age = ref(18)
17     let job = reactive({
18       type: '前端工程师',
19       salary: '30k'
20     })
21 
22     function changeInfo() {
23       name.value = '李四'
24       age.value = 48
25       job.type = 'UI设计师'
26       job.salary = '35k'
27     }
28     return {
29       name,
30       age,
31       job,
32       changeInfo
33     }
34   }
35 }
36 </script>

 

标签:name,对象,setup,value,job,API,vue3,ref,Composition
来源: https://www.cnblogs.com/guwufeiyang/p/15845917.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有