compositions-api的优势

可以将每个功能相关的代码放在一个部分,避免代码混乱。后面的示例代码中可以看到,将人物部分的逻辑和标题相关的逻辑可以提取到单独的方法中,如果是正式的项目中,这两块的逻辑比较复杂,可以将它们提取到两个单独的js文件中,类似与vue2中的mixins但是不会出现mixins中各个部分的属性互相影响的问题

createApp

用于创建一个新的Vue应用实例

createApp({setup(){//......}
}).mount('#app')

setup

它是Composition API的入口点。创建组件实例,然后初始化props,紧接着就会调用setup函数。它在beforeCreate钩子之前被调用。

ref

用于给基本类型的数据添加响应式

setup(){let title = ref('标题')return {title}
}

reactive

用于给对象添加响应式

setup(){let persion = reactive({name:'小明'})return {persion}
}

ref和reactive的区别

  • ref也可以传入对象,也可以实现响应式,其内部会自动调用reactive方法
  • reactive传入基本类型控制台会出警告,并且不会实现响应式
  • 给ref的响应式对象赋值的时候要用.value的形式赋值

computed

这个计算属性方法,接收一个getter函数,返回一个默认不可手动修改的ref对象

setup(){let title = ref('标题')let subtitle = computed(()=> '二级' + title.value )return {title, subtitle}
}

代码部分

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><h2>{{title}}</h2> - <span>{{subTitle}}</span><button @click="changeTitle">改变标题</button> <p>姓名:{{form.name}}</p><p>年龄:{{form.age}}</p><button @click="changeAge">改变年龄</button></div><script src="https://unpkg.com/vue@next"></script><script>// 引入const { createApp, ref, reactive, onMounted,  computed} = Vue;// 初始化createApp({setup(){let {title, changeTitle} = titleFn();let {form, changeAge} = persionFn();// 计算属性let subTitle = computed(()=> title.value + 1000)return {title, changeTitle, form, changeAge, subTitle}; }}).mount('#app')// 人物相关:引用类型的定义和修改function persionFn(){let form = reactive({name:'小明',age:66});function changeAge(){form.age = 100;}return {form, changeAge}}// 标题相关:定义和修改基本类型function titleFn(){let title = ref('标题一');function changeTitle(){// 注意这里到value里赋值title.value = '标题66666666二';}return {title, changeTitle};}</script>
</body>
</html>

vue3学习笔记一:createApp, ref, reactive, onMounted,computed相关推荐

  1. vue3学习笔记(ref, reactive, setup, hook...)

    目录 一.搭建项目 二.常用的Composition API 1.ref函数(实现响应式) 2.reactive函数 3.vue2和vue3响应式的区别 4. setup参数 5.计算属性和监视 6. ...

  2. 转载于掘金的vue3学习笔记

    声明:转载于掘金的文章,原文地址:https://juejin.cn/post/7005140118960865317/,本文只是自用. 一.简介 2020年9月18日,Vue.js发布3.0版本,代 ...

  3. 【Vue】菜头学前端 - vue3学习笔记

    目录 简介 一.创建项目 1.使用vue-clli创建 2.使用Vite创建 二.Composition API(组合式API) 1.setup函数 2.ref函数和reactive函数 1.ref函 ...

  4. Vue3 学习笔记 —— 父子组件传值、插槽、提供/注入、兄弟组件传值、mitt

    目录 1. 父子组件传值 1.1 父组件给子组件传值 -- v-bind 1.2 子组件接收父组件的传值 -- defineProps 1.3 设置子组件接受参数的默认值 -- withDefault ...

  5. Vue3 学习笔记 —— Teleport、keep-alive

    目录 1. Teleport 传送组件 1.1 为什么要使用 Teleport 1.2 如何使用 Teleport 1.3 Teleport 源码 2. keep-alive 缓存组件 2.1 为什么 ...

  6. Vue3学习笔记:了解并使用Pinia状态管理

    Vue3是一个流行的JavaScript框架,它允许您构建交互式的Web应用程序.Vue3中使用的状态管理工具是Vuex,但是有一种新的状态管理工具叫做Pinia,它提供了更简单.更轻量级的状态管理方 ...

  7. Vue3 学习笔记 —— 破坏式更新、自定义指令 directive

    目录 1. 什么叫破坏式更新? 2. Vue3 中的自定义指令 2.1 自定义指令的生命周期 2.1.1 Vue2 Vs Vue3 的自定义指令生命周期 2.1.2 自定义指令的生命周期中,接收的参数 ...

  8. vue3学习笔记 Composition API setup

    一.Composition API优势 相对于vue2的option API Vue3的Composition API设计更有优势 Composition(组合式)Api 功能分组 Compositi ...

  9. Vue3学习笔记- NPM包管理工具

    导语   这篇分享是关于Vue3 系列的学习知识的整理的开始,能够对大家学习带来帮助.也是对自己能力的一种提升. 学习大纲 认识NPM 安装NPM 使用NPM NPM中级用法 了解package.js ...

  10. Vue 计算属性缓存和方法的区别:从另一段代码来看【vue3学习笔记】

    首发自我的博客 zhangmaimai.com,可以访问获取更多内容与及时更新~ https://zhangmaimai.com/2021/08/20/vue-computed-caching-vs- ...

最新文章

  1. 以MATLAB的方式实现微积分问题的计算机求解问题及解决方案集锦(一)
  2. java jpa 字段 关联_jpaQuery中查询字段是关联表的查询方法以及@JoinEntity(joinEntityAlias =str)的作用和代码编写的规范...
  3. Java实现可视化迷宫
  4. 荣耀V30外观细节曝光:后置相机模组排布类似坚果Pro3
  5. [经验教程]Windows电脑上查看ip地址的cmd命令是什么及如何利用CMD查看本机IP地址?
  6. linux c 开发
  7. Either类java_通过实例学习Either 树和模式匹配
  8. 【开源访谈】ECharts 作者 林峰 访谈实录
  9. java word 替换_Java 在 Word 文档中使用新文本替换指定文本的方法
  10. 记录一次docker安装遇到的坑
  11. E4手环获取数据步骤
  12. php齐博cms,齐博CMS splitword.php后门解密
  13. Android实现 制作隐藏图片效果 (幻影坦克)
  14. DB2快速入门—DB2 11的安装与使用
  15. tomcat 端口 8005 被 windows 系统服务占用导致启动闪退的问题
  16. @高校学生开发者,为什么你一定要“上手”开源项目?
  17. SCTP协议详解与实例
  18. 安装JDK7和Tomcat8.5后,Tomcat服务启动不了
  19. 计算机应用研究》专业刊物论文,《计算机应用研究》CSCD核心期刊 2017年03期目录...
  20. (三十) Ubuntu解决/boot 空间不足问题

热门文章

  1. 无线城市--WiMax,WiFi-Mesh和3G/4G/5g网络
  2. linux系统下部署python自动化程序并配置Jenkins定时执行
  3. saas 系统租户个性化域名租户绑定自己域名的解决方案
  4. [转]“荒”是民工用脚投票的权利自救
  5. SDL_FillRect函数
  6. 520送女生什么礼物比较好?一口气推荐六款,快收藏
  7. 6sigma精益改善-常用术语和方法工具
  8. 永久免费!永洪科技发布桌面智能数据分析工具Desktop,推动数据应用平民化
  9. 【C盘内存不足的解决方法】
  10. Ansible9:变量之Fact