一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - vue3.0中setup使用(兩種用法)

vue3.0中setup使用(兩種用法)

2021-12-01 16:45前端小99 JavaScript

這篇文章主要介紹了vue3.0中setup使用,本文通過兩種用法給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

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

  可以確定的是 Vue3.0 是兼容 Vue2.x 版本的 也就是說我們再日常工作中 可以在 Vue3 中使用 Vue2.x 的相關語法 但是當你真正開始使用 Vue3 寫項目時 你會發(fā)現他比 Vue2.x 方便的多

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

  1、setup函數是處于 生命周期函數 beforeCreate 和 Created 兩個鉤子函數之間的函數 也就說在 setup函數中是無法 使用 data 和 methods 中的數據和方法的

  2、setup函數是 Composition API(組合API)的入口

  3、在setup函數中定義的變量和方法最后都是需要 return 出去的 不然無法再模板中使用

二、setup函數的注意點

  1、由于在執(zhí)行 setup函數的時候,還沒有執(zhí)行 Created 生命周期方法,所以在 setup 函數中,無法使用 data 和 methods 的變量和方法

  2、由于我們不能在 setup函數中使用 data 和 methods,所以 Vue 為了避免我們錯誤的使用,直接將 setup函數中的this修改成了 undefined

  3、setup函數只能是同步的不能是異步的

用法1:結合ref使用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<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 里面設置監(jiān)聽屬性

我們需要在 methods 里面設置事件方法

你會發(fā)現 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 來分離代碼,用來切割成各種模塊導出。

我們期望是這樣的:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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使用內容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_41328247/article/details/109286022

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美男同video | 亚洲男人天堂 | 紧身裙女教师波多野结衣 | 天天做日日做天天添天天欢公交车 | 欧美美女一级片 | 久久视频精品3线视频在线观看 | futa百合高肉全h | 女子监狱第二季在线观看免费完整版 | 国产午夜视频在线观看网站 | 亚洲国产精品自产在线播放 | 国内精品露脸在线视频播放 | 放荡的女老板bd中文字幕 | 亚洲精品www久久久久久久软件 | 免费99精品国产自在现线 | 国产精品xxxav免费视频 | 日本动漫啪啪动画片mv | 亚洲欧洲日产国码无码av | 99精品视频免费 | 欧美xingai| 国产成人久久精品一区二区三区 | 国产免费资源 | 青青热久久综合网伊人 | 无人区大片免费播放器 | 极品主播的慰在线播放 | 海角社区在线视频 | 白发在线视频播放观看免费 | 亚洲高清国产拍精品影院 | 好男人在线观看免费高清2019韩剧 | 青青热久麻豆精品视频在线观看 | 欧美成人aa久久狼窝动画 | 久久青草免费91线频观看站街 | 亚洲天堂视频在线观看 | 日本一区视频在线 | 52zfl宅福利yxpjw | 国产91成人精品亚洲精品 | 日韩视频在线观看中字 | 日韩精品成人免费观看 | blackedhd 18sex| 九九精品国产兔费观看久久 | 国产一区二区视频在线观看 | 国产剧情在线播放 |