vue3.0中setup使用(两种用法)


Posted in Vue.js onDecember 02, 2020

一、setup函数的特性以及作用

可以确定的是 Vue3.0 是兼容 Vue2.x 版本的 也就是说我们再日常工作中 可以在 Vue3 中使用 Vue2.x 的相关语法 但是当你真正开始使用 Vue3 写项目时 你会发现他比 Vue2.x 方便的多

Vue3 的一大特性函数 ---- setup

1、setup函数是处于 生命周期函数 beforeCreate 和 Created 两个钩子函数之间的函数 也就说在 setup函数中是无法 使用 data 和 methods 中的数据和方法的

2、setup函数是 Composition API(组合API)的入口

3、在setup函数中定义的变量和方法最后都是需要 return 出去的 不然无法再模板中使用

二、setup函数的注意点

1、由于在执行 setup函数的时候,还没有执行 Created 生命周期方法,所以在 setup 函数中,无法使用 data 和 methods 的变量和方法

2、由于我们不能在 setup函数中使用 data 和 methods,所以 Vue 为了避免我们错误的使用,直接将 setup函数中的this修改成了 undefined

3、setup函数只能是同步的不能是异步的

用法1:结合ref使用

<template>
 <div id="app">
  {{name}}
  <p>{{age}}</p>
  <button @click="plusOne()">+</button>
 </div>
</template>
 
<script>
import {ref} from 'vue'
export default {
 name:'app',
 data(){
  return {
   name:'xiaosan'
  }
 },
 setup(){
  const name =ref('小四')
  const age=ref(18)
  function plusOne(){
   age.value++ //想改变值或获取值 必须.value
  }
  return { //必须返回 模板中才能使用
   name,age,plusOne
  }
 }
}
</script>

用法2:代码分割

Options API 和 Composition API 

Options API 约定:

我们需要在 props 里面设置接收参数

我们需要在 data 里面设置变量

我们需要在 computed 里面设置计算属性

我们需要在 watch 里面设置监听属性

我们需要在 methods 里面设置事件方法

你会发现 Options APi 都约定了我们该在哪个位置做什么事,这反倒在一定程度上也强制我们进行了代码分割。

现在用 Composition API,不再这么约定了,于是乎,代码组织非常灵活,我们的控制代码写在 setup 里面即可。

setup函数提供了两个参数 props和context,重要的是在setup函数里没有了this,在 vue3.0 中,访问他们变成以下形式: this.xxx=》context.xxx

我们没有了 this 上下文,没有了 Options API 的强制代码分离。Composition API 给了我们更加广阔的天地,那么我们更加需要慎重自约起来。

对于复杂的逻辑代码,我们要更加重视起 Composition API 的初心,不要吝啬使用 Composition API 来分离代码,用来切割成各种模块导出。

我们期望是这样的:

importuseAfrom'./a';
 
importuseBfrom'./b';
 
importuseCfrom'./c';
 
exportdefault{
 
setup (props) {
 
let{ a, methodsA } = useA();
 
let{ b, methodsB } = useA();
 
let{ c, methodsC } = useC();
 
return{
 
a,
 
methodsA,
 
b,
 
methodsB,
 
c,
 
methodsC
 
}
 
}
 
}

就算 setup 内容代码量越来越大,但是始终围绕着大而不乱,代码结构清晰的路子前进。

到此这篇关于vue3.0中setup使用的文章就介绍到这了,更多相关vue3.0 setup使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
一篇超完整的Vue新手入门指导教程
Nov 18 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
vue使用节流函数的踩坑实例指南
May 20 Vue.js
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
Vue操作Storage本地化存储
Apr 29 Vue.js
vue3.0+vue-router+element-plus初实践
Dec 02 #Vue.js
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 #Vue.js
详解Vue3 Teleport 的实践及原理
Dec 02 #Vue.js
vue $router和$route的区别详解
Dec 02 #Vue.js
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 #Vue.js
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
Dec 02 #Vue.js
vue组件中节流函数的失效的原因和解决方法
Dec 02 #Vue.js
You might like
PHP截取中文字符串的问题
2006/07/12 PHP
提取HTML标签
2006/10/09 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
PHP中Http协议post请求参数
2015/11/02 PHP
PHP查询分页的实现代码
2017/06/09 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
javascript基础知识大集锦(一) 推荐收藏
2011/01/13 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
JS 仿支付宝input文本输入框放大组件的实例
2017/11/14 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
javascript实现画板功能
2020/04/12 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
python下载图片实现方法(超简单)
2017/07/21 Python
代码分析Python地图坐标转换
2018/02/08 Python
Python的条件锁与事件共享详解
2019/09/12 Python
Python 多进程原理及实现
2020/12/21 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
《木笛》教学反思
2014/03/01 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
房地产推广策划方案
2014/05/19 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书