国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信

這篇具有很好參考價(jià)值的文章主要介紹了前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

(創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡)

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

目錄

組件的三大組成部分

注意點(diǎn)說(shuō)明

組件的樣式?jīng)_突 scoped

data 是一個(gè)函數(shù)

組件通信

什么是組件通信

不同的組件關(guān)系 和 組件通信方案分類(lèi) ?

父子通信流程圖:?

父 → 子

子 → 父?

什么是 prop

props 校驗(yàn)?

prop & data、單向數(shù)據(jù)流

進(jìn)階語(yǔ)法

v-model 原理

表單類(lèi)組件封裝 & v-model 簡(jiǎn)化代碼 ?

.sync 修飾符 ?

ref 和 $refs ?


組件的三大組成部分

注意點(diǎn)說(shuō)明

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

組件的樣式?jīng)_突 scoped

默認(rèn)情況 :寫(xiě)在組件中的樣式會(huì) 全局生效 → 因此很容易造成多個(gè)組件之間的樣式?jīng)_突問(wèn)題。
1. 全局樣式 : 默認(rèn)組件中的樣式會(huì)作用到全局
2. 局部樣式 : 可以給組件加上 scoped 屬性, 可以讓樣式只作用于當(dāng)前組件
scoped原理?
1. 當(dāng)前組件內(nèi)標(biāo)簽都被添加 data-v-hash值 的屬性 前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言
2. css選擇器都被添加 [data-v-hash值] 的屬性選擇器 前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言
最終效果: 必須是當(dāng)前組件的元素 , 才會(huì)有這個(gè)自定義屬性, 才會(huì)被這個(gè)樣式作用到

data 是一個(gè)函數(shù)

一個(gè)組件的 data 選項(xiàng)必須是一個(gè) 函數(shù) ?!?保證每個(gè)組件實(shí)例,維護(hù) 獨(dú)立 的一份數(shù)據(jù)對(duì)象。
每次創(chuàng)建新的組件實(shí)例,都會(huì)新執(zhí)行一次 data 函數(shù),得到一個(gè)新對(duì)象。

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

<template>
  <div class="base-count">
    <button @click="count--">-</button>
    <span>{{ count }}</span>
    <button @click="count++">+</button>
  </div>
</template>

<script>
export default {
  data() {
    console.log('函數(shù)執(zhí)行了')
    return {
      count: 100,
    }
  },
}
</script>

<style>
.base-count {
  margin: 20px;
}
</style>
<template>
  <div class="app">
    <baseCount></baseCount>
  </div>
</template>

<script>
import baseCount from './components/BaseCount'
export default {
  components: {
    baseCount,
  },
}
</script>

<style>
</style>

組件通信

什么是組件通信

組件通信, 就是指 組件與組件 之間的數(shù)據(jù)傳遞。

組件的數(shù)據(jù)是 獨(dú)立 的,無(wú)法直接訪問(wèn)其他組件的數(shù)據(jù)。
想用其他組件的數(shù)據(jù) → 組件通信
前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

不同的組件關(guān)系 和 組件通信方案分類(lèi) ?

組件關(guān)系分類(lèi):
1. 父子關(guān)系
2. 非父子關(guān)系 前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

組件通信解決方案: ?

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

父子通信流程圖:?

1. 父組件通過(guò) props 將數(shù)據(jù)傳遞給子組件
2. 子組件利用 $emit 通知父組件修改更新

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

父 → 子

父組件通過(guò) props 將數(shù)據(jù)傳遞給子組件

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

子 → 父?

子組件利用 $emit 通知父組件,進(jìn)行修改更新

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

什么是 prop

Prop 定義: 組件上 注冊(cè)的一些 自定義屬性
Prop 作用:向子組件傳遞數(shù)據(jù)
特點(diǎn):
????????可以 傳遞 任意數(shù)量 的prop
????????可以 傳遞 任意類(lèi)型 的prop

props 校驗(yàn)?

作用: 為組件的 prop 指定 驗(yàn)證要求 ,不符合要求,控制臺(tái)就會(huì)有 錯(cuò)誤提示 → 幫助開(kāi)發(fā)者,快速發(fā)現(xiàn)錯(cuò)誤
語(yǔ)法:
① 類(lèi)型校驗(yàn)
② 非空校驗(yàn)
③ 默認(rèn)值
④ 自定義校驗(yàn)

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

prop & data、單向數(shù)據(jù)流

共同點(diǎn):都可以給組件提供數(shù)據(jù)。
區(qū)別:
? data 的數(shù)據(jù)是 自己 的 → 隨便改
? prop 的數(shù)據(jù)是 外部 的 → 不能直接改,要遵循 單向數(shù)據(jù)流
單向數(shù)據(jù)流:父級(jí) prop 的數(shù)據(jù)更新,會(huì)向下流動(dòng),影響子組件。這個(gè)數(shù)據(jù)流動(dòng)是單向的。

進(jìn)階語(yǔ)法

v-model 原理

原理: v-model本質(zhì)上是一個(gè) 語(yǔ)法糖 。例如應(yīng)用在 輸入框上,就是 value屬性 input事件 的合寫(xiě)。
作用: 提供數(shù)據(jù)的雙向綁定
數(shù)據(jù)變,視圖跟著變 :value
視圖變,數(shù)據(jù)跟著變 @input
注意: $event 用于在模板中,獲取事件的形參 前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

表單類(lèi)組件封裝 & v-model 簡(jiǎn)化代碼 ?

1. 表單類(lèi)組件 封裝→ 實(shí)現(xiàn) 子組件 和 父組件數(shù)據(jù) 的雙向綁定

父?jìng)髯樱?/span> 數(shù)據(jù) 應(yīng)該是父組件 props 傳遞 過(guò)來(lái)的, 拆解 v-model 綁定數(shù)據(jù)
子傳父: 監(jiān)聽(tīng)輸入,子傳父?jìng)髦到o父組件修改 前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

2. 父組件 v-model 簡(jiǎn)化代碼,實(shí)現(xiàn) 子組件 和 父組件數(shù)據(jù) 雙向綁定 文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-613081.html

① 子組件中:props 通過(guò) value 接收 ,事件觸發(fā) input
② 父組件中: v-model 給組件直接綁數(shù)據(jù) ( :value + @input ) 前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

.sync 修飾符 ?

作用: 可以實(shí)現(xiàn) 子組件 父組件數(shù)據(jù) 雙向綁定 ,簡(jiǎn)化代碼
特點(diǎn): prop屬性名,可以 自定義 ,非固定為 value
場(chǎng)景: 封裝彈框類(lèi)的基礎(chǔ)組件, visible屬性 true顯示 false隱藏
本質(zhì): 就是 :屬性名 @update:屬性名 合寫(xiě) 前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信,# 前端vue入門(mén),前端,vue.js,javascript,前端框架,開(kāi)發(fā)語(yǔ)言

ref 和 $refs ?

作用: 利用 ref 和 $refs 可以用于 獲取 dom 元素, 組件實(shí)例
特點(diǎn): 查找范圍 → 當(dāng)前組件內(nèi) (更精確穩(wěn)定)
① 獲取 dom:
????????1. 目標(biāo)標(biāo)簽 – 添加 ref 屬性
<div ref="chartRef">我是渲染圖表的容器</div>
????????2. 恰當(dāng)時(shí)機(jī), 通過(guò) this.$refs.xxx, 獲取目標(biāo)標(biāo)簽
mounted () {
console.log(this.$refs.chartRef)
},
② 獲取組件:
????????1. 目標(biāo)組件 – 添加 ref 屬性
<BaseForm ref="baseForm"></BaseForm>
????????2. 恰當(dāng)時(shí)機(jī), 通過(guò) this.$refs.xxx, 獲取目標(biāo)組件,就可以 調(diào)用組件對(duì)象里面的方法
this.$refs.baseForm.組件方法()

到了這里,關(guān)于前端Vue入門(mén)-day04-用vue實(shí)現(xiàn)組件通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue04---計(jì)算屬性/監(jiān)聽(tīng)(偵聽(tīng))屬性/Vue生命周期/組件介紹和使用/組件間通信/ref屬性

    # 1 計(jì)算屬性是基于它們的依賴(lài)變量進(jìn)行緩存的 # 2 計(jì)算屬性只有在它的相關(guān)依賴(lài)變量發(fā)生改變時(shí)才會(huì)重新求值,否則不會(huì)變(函數(shù)只要頁(yè)面變化,就會(huì)重新運(yùn)算) # 3 計(jì)算屬性就像Python中的property,可以把方法/函數(shù)偽裝成屬性 # 4 計(jì)算屬性,必須有返回值 基本使用 重寫(xiě)過(guò)濾案

    2024年02月08日
    瀏覽(27)
  • 前端Vue入門(mén)-day02

    前端Vue入門(mén)-day02

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) 目錄 指令補(bǔ)充 指令修飾符 v-bind 對(duì)于樣式控制的增強(qiáng)? 操作class 案例:京東秒殺 tab 導(dǎo)航高亮 操作style? v-model 應(yīng)用于其他表單元素? computed 計(jì)算屬性 基礎(chǔ)語(yǔ)法 computed 計(jì)算屬

    2024年02月13日
    瀏覽(46)
  • 前端Vue入門(mén)-day01-初識(shí)vue與vue指令

    前端Vue入門(mén)-day01-初識(shí)vue與vue指令

    -(創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) 目錄 Vue 快速上手 Vue 概念 創(chuàng)建實(shí)例?? 插值表達(dá)式 響應(yīng)式特性 開(kāi)發(fā)者工具? Vue 指令? v-show? v-if? v-else? v-else-if? v-on v-bind? v-for key? v-model? 概念:Vue 是一個(gè)用于 構(gòu)建用戶

    2024年02月09日
    瀏覽(69)
  • 前端Vue入門(mén)-day07-Vuex入門(mén)

    前端Vue入門(mén)-day07-Vuex入門(mén)

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) 目錄 自定義創(chuàng)建項(xiàng)目 vuex概述 構(gòu)建 vuex [多組件數(shù)據(jù)共享] 環(huán)境? 創(chuàng)建一個(gè)空倉(cāng)庫(kù) state 狀態(tài) 1. 提供數(shù)據(jù): 2. 使用數(shù)據(jù): mutations? 輔助函數(shù) - mapMutations actions 輔助函數(shù) - mapAc

    2024年02月14日
    瀏覽(42)
  • Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解

    Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解

    目錄 前言 父組件傳子組件 ---- props 給要傳遞數(shù)據(jù)的子組件綁定要傳過(guò)去的屬性及屬性值 在子組件中使用props配置項(xiàng)接收 props配置項(xiàng) 子組件傳父組件 ---- 組件的自定義事件 子組件向父組件傳遞數(shù)據(jù) 通過(guò)代碼來(lái)綁定自定義事件 本文將介紹在Vue中父子組件如何進(jìn)行通信 這里先介

    2024年02月05日
    瀏覽(631)
  • 前端Vue入門(mén)-day06-路由進(jìn)階

    前端Vue入門(mén)-day06-路由進(jìn)階

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) 目錄 路由的封裝抽離 聲明式導(dǎo)航 導(dǎo)航鏈接? 兩個(gè)類(lèi)名? 自定義高亮類(lèi)名? 跳轉(zhuǎn)傳參 1. 查詢(xún)參數(shù)傳參 2. 動(dòng)態(tài)路由傳參 兩種傳參方式的區(qū)別? Vue路由? 重定向 404 編程式導(dǎo)航

    2024年02月14日
    瀏覽(24)
  • vue3 快速入門(mén)系列 —— 組件通信

    vue3 快速入門(mén)系列 —— 組件通信

    組件通信在開(kāi)發(fā)中非常重要,通信就是你給我一點(diǎn)東西,我給你一點(diǎn)東西。 本篇將分析 vue3 中組件間的通信方式。 Tip :下文提到的絕大多數(shù)通信方式在 vue2 中都有,但是在寫(xiě)法上有一些差異。 在 vue3 基礎(chǔ)上進(jìn)行。 新建三個(gè)組件:爺爺、父親、孩子A、孩子B,在主頁(yè) Home.vu

    2024年04月17日
    瀏覽(22)
  • vue快速入門(mén)(三十六)組件通信-子傳父

    vue快速入門(mén)(三十六)組件通信-子傳父

    注釋很詳細(xì),直接上代碼 上一篇 新增內(nèi)容 子傳父之子組件傳遞方法與值 子傳父之父組件接收方法與值 源碼 App.vue MyTest.vue 效果演示

    2024年04月25日
    瀏覽(26)
  • 前端Vue入門(mén)-day05-自定義指令、插槽、路由入門(mén)

    前端Vue入門(mén)-day05-自定義指令、插槽、路由入門(mén)

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) 目錄 自定義指令? 基本語(yǔ)法 (全局局部注冊(cè)) 全局注冊(cè)? 局部注冊(cè) 指令的值? v-loading 指令封裝 插槽 默認(rèn)插槽 后備內(nèi)容(默認(rèn)值)? 具名插槽? 作用域插槽? 路由入門(mén) 單頁(yè)應(yīng)

    2024年02月13日
    瀏覽(53)
  • 探索前端跨組件通信:EventBus在Vue和React中的應(yīng)用

    探索前端跨組件通信:EventBus在Vue和React中的應(yīng)用

    本文作者系360奇舞團(tuán)前端開(kāi)發(fā)工程師 事件總線(Event Bus) 是一種用于組件間通信的模式,通常用于解決組件之間的解耦和簡(jiǎn)化通信的問(wèn)題。在前端框架中,如 Vue.js,事件總線是一個(gè)常見(jiàn)的概念?;旧?,事件總線是一個(gè)能夠觸發(fā)和監(jiān)聽(tīng)事件的機(jī)制,使得組件能夠在不直接依

    2024年02月02日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包