成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

總結(jié)一下,Vue3 與 Vue2 的Props、全局組件的異同點(diǎn)!

開發(fā) 前端
Props 是任何現(xiàn)代 JS 框架的重要組成部分。在組件之間傳遞數(shù)據(jù)的能力是Vue項(xiàng)目的基本要素。Vue3 中,在組件中訪問Props的方式與 Vue2 會(huì)有所不同。

[[397409]]

Vue3 Props

Props 是任何現(xiàn)代 JS 框架的重要組成部分。在組件之間傳遞數(shù)據(jù)的能力是Vue項(xiàng)目的基本要素。Vue3 中,在組件中訪問Props的方式與 Vue2 會(huì)有所不同。

為什么使用 Props 很重要?

首先,我們要了解什么是 props。props是可在組件上注冊(cè)的自定義屬性,可讓我們將數(shù)據(jù)從父組件傳遞到其子組件方式之一。

由于props讓我們能夠在組件之間共享數(shù)據(jù),因此它使我們可以將Vue項(xiàng)目分解成更多的模塊化組件。

props 示例

Vue3 之前,組件的props只是 this 對(duì)象的一部分,可以使用this.propName進(jìn)行訪問。

但是,Vue3的一大變化是setup方法的引入。

setup方法包含了幾乎所有過去被分隔成不同的選項(xiàng),如data,computed,watch等。關(guān)于setup方法的需要重點(diǎn)注意的是,它里面沒有 this。

那么我們?nèi)绾尾皇褂胻his來使用Vue3 props 呢?

其實(shí)超級(jí)簡(jiǎn)單,setup方法實(shí)際上有兩個(gè)參數(shù):

  1. props – 包含組件的 props 的對(duì)象。
  2. context – 一個(gè)對(duì)象,它包含了在this上能找到的特定屬性。

context 官方文檔里只說明了有 attrs, slots, 和 emit()。

來個(gè)示例:

  1. setup (props, context) { 
  2.     console.log(props.propName) // access a prop to our component 

做項(xiàng)目中發(fā)現(xiàn),其實(shí) context 還有一個(gè) exposed,這個(gè)是用來暴露 setup 中方法的,就是父組件能訪問到子組件中 setup 里面的方法。這個(gè)在項(xiàng)目中有遇到過這個(gè)需求,所以我也去 Vue github 上Issues 中去找答案,發(fā)現(xiàn)也有人提問:

尤大,在底部明確說明了不推薦這么做:

他建議通過 父組件傳入子組件一個(gè) Props 來實(shí)現(xiàn)。

為什么 Vue3 props 的工作方式與 Vue2 不同?

更改 Vue3 Props 的方式主要的一個(gè)原因,使 this 在組件/方法中的含義更清楚。有時(shí)在查看Vue2代碼時(shí),this所指可能是模棱兩可的。

Vue 團(tuán)隊(duì)在設(shè)計(jì) Vue3 時(shí)的一個(gè)大目標(biāo)是使其在大型項(xiàng)目中更具可伸縮性。其中一部分是將Options API重新設(shè)計(jì)為Composition API,以實(shí)現(xiàn)更好的代碼組織。

但是通過消除對(duì) this 的大多數(shù)引用,而是使用顯式的context和props變量,可以提高大型Vue項(xiàng)目的可讀性。

如何注冊(cè) Vue3 全局組件

現(xiàn)在,我們來看看如何注冊(cè)Vue3全局組件,方便在我們整個(gè)項(xiàng)目都能訪問。與我們?cè)赩ue2中聲明它們的方式稍有不同,但也是非常簡(jiǎn)單。

什么是全局組件

首先,我們要還了解Vue3全局組件是什么以及為什么要使用它。

通常,當(dāng)我們想在 Vue 實(shí)例中包含一個(gè)組件時(shí),我們會(huì)在本地注冊(cè)它,一般是這樣使用:

  1. <script> 
  2. import PopupWindow from '../components/PopupWindow.vue'
  3.  
  4. export default { 
  5.   components: { 
  6.     PopupWindow 
  7.   } 
  8. </script> 

 

但是,假設(shè)有一個(gè)組件,我們知道它會(huì)在多個(gè)文件中多次使用。所以在每個(gè)文件都需要寫一遍上述的代碼-尤其是在我們重構(gòu)了項(xiàng)目或進(jìn)行某些操作的情況下,就會(huì)比較麻煩。

在這種情況下,全局注冊(cè)組件是有用的,這樣就可以在主根Vue實(shí)例的所有子組件中訪問該組件。換句話說,全局注冊(cè)一個(gè)組件意味著我們不必在每個(gè)文件中導(dǎo)入它。

Vue2 中全局組件是如何工作的

在Vue2中,無論我們?cè)谀睦飫?chuàng)建Vue實(shí)例,我們都只需要調(diào)用Vue.component方法來注冊(cè)全局組件。

這個(gè)方法有兩個(gè)參數(shù):

  1. 全局組件的名稱
  2. 我們的組件本身
  1. import Vue from 'vue' 
  2. import PopupWindow from './components/PopupWindow' 
  3. import App from './App.vue' 
  4.  
  5. Vue.component('PopupWindow', PopupWindow) // global registration - can be used anywhere 
  6.  
  7. new Vue({ 
  8.   render: h => h(App) 
  9. }).$mount('#app'

現(xiàn)在,此 PopupWindow 組件可以在此Vue實(shí)例的所有子級(jí)中使用。

那么在 Vue3 中呢

在Vue3中,由于創(chuàng)建Vue實(shí)例的工作方式略有不同(使用createApp),所以代碼略有不同,但理解起來同樣簡(jiǎn)單。

比起從Vue2對(duì)象中聲明全局組件,我們首先必須創(chuàng)建我們的應(yīng)用程序。然后,可以像以前一樣運(yùn)行相同的.component方法。

  1. import { createApp } from 'vue' 
  2. import PopupWindow from './components/PopupWindow' 
  3. import App from "./App.vue" 
  4.  
  5. const app = createApp(App) 
  6.  
  7. app.component('PopupWindow', PopupWindow) // global registration - can be used anywhere 
  8.  
  9. app.mount('#app'

~完,我是刷碗智,我要去刷碗了,骨的白!

作者:Matt Maribojoc 譯者:前端小智 來源:stackabuse

原文:

https://leavue.co/2020/08/an-introduction-to-vue3-props-a-beinners-guide/ https://leavue.co/2020/08/how-to-register-a-vue3-global-component/

本文轉(zhuǎn)載自微信公眾號(hào)「大遷世界」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系大遷世界公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 大遷世界
相關(guān)推薦

2020-03-25 18:23:07

Vue2Vue3組件

2022-06-21 12:09:18

Vue差異

2022-07-18 10:43:12

項(xiàng)目TienChinJava

2021-03-22 10:05:25

開源技術(shù) 項(xiàng)目

2022-09-20 12:21:25

Vue2Vue3$attrs

2023-04-28 08:35:22

Vue 3Vue 2

2022-06-29 16:59:21

Vue3Vue2面試

2021-05-18 07:51:37

Suspense組件Vue3

2022-12-09 09:39:20

Vue3Vue2

2022-09-20 11:00:14

Vue3滾動(dòng)組件

2020-12-01 08:34:31

Vue3組件實(shí)踐

2021-05-26 10:40:28

Vue3TypeScript前端

2023-02-23 09:59:52

路由差異Vue

2023-04-27 11:07:24

Setup語法糖Vue3

2021-07-29 12:05:18

Vue3Api前端

2023-04-02 10:06:24

組件vue3sign2.

2024-03-13 08:37:18

Vue3Suspense異步組件

2022-07-26 01:06:18

Vue3自定義指令

2009-11-10 11:25:35

VB.NET與Basi

2021-12-01 08:11:44

Vue3 插件Vue應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩高清在线观看 | 精品国产欧美一区二区三区成人 | 黄a网 | 久久久久一区 | 国产欧美日韩在线 | 黄色精品 | 亚洲国产精品一区在线观看 | 久久久久久999 | 久久国产一区二区三区 | 武道仙尊动漫在线观看 | 免费三级网 | 99re在线视频免费观看 | 日本在线小视频 | 久久久人| 一区二区精品视频 | 国产精品成人一区二区三区吃奶 | 国产精品免费小视频 | 亚洲综合一区二区三区 | 中文字幕韩在线第一页 | 一级aaaa毛片 | 国产xxxx岁13xxxxhd | 国产成人免费视频网站高清观看视频 | 一区二区精品 | 国精产品一品二品国精在线观看 | 在线免费观看成人 | av一级毛片 | 欧美亚洲高清 | 夫妻午夜影院 | 一区二区三区免费看 | 成人精品一区二区 | 久久久精彩视频 | 欧美日韩精品久久久免费观看 | h视频在线观看免费 | 色综合色综合色综合 | 99久久久国产精品免费消防器 | 福利精品在线观看 | 国产精品成人一区二区三区 | 日韩在线不卡 | 97色在线观看免费视频 | 九色在线 | 国户精品久久久久久久久久久不卡 |