VUE3的通訊方式

App.vue:

<template>

? <img alt="Vue logo" src="./assets/logo.png" />

?<!-- ?<br>

? ref:<input type="text" v-model="msg"><br>

? 無ref:<input type="text" v-model="msg2">

? <button @click="updataMsg">修改msg</button>

? <h1>{{msg}}</h1>

? <h1>{{msg2}}</h1>

? <h2 @click="changeFn">{{flag}}</h2>

? <button @click="updataName">修改姓名</button> |

? <button @click="delAge">刪除年齡</button> |

? <button @click="addSchool">新增學(xué)校</button> |

? <h1>姓名:{{obj.name}} ?年齡:{{obj.age}} 學(xué)校:{{obj.school}}</h1> -->


?<!-- ?<comp-b :msg="msg" @changzi="changzi"/> -->

?<h1 @click="str1Change">{{msg1}}</h1>

?<h1 @click="objChange">{{obj.name}}--{{obj.age}}</h1>

?<h1 >{{str}}</h1>

?<h1>{{s}}</h1><hr>

?<comp-c/>

</template>

<script>

import CompC from './components/CompC.vue'

import {computed, reactive, ref, watch,provide} from 'vue'

/* import CompB from './components/CompB.vue' */

export default {

? name: 'App',

? components:{

? ?/* CompB */

? ?CompC

? },

? /* created(){

? ?console.log('created');

? }, */

? /* setup 函數(shù)出現(xiàn)的速度比created要快 執(zhí)行的順序比creatd要快 */

? setup:function(){

? ? /* 基本數(shù)據(jù)類型ref */

? ? /* 引用數(shù)據(jù)類型reactive */

? ? /* console.log('setup');

? ? let msg = ref('你好');

? ? let msg2 = ('你好');

? ? let flag = ref(true);

? ? let obj = reactive({

? ? ? name:'張三',

? ? ? age:30

? ? })

? ? function updataMsg(){

? ? ? ?msg.value = '我修改了msg'

? ? }

? ? function changeFn(){

? ? ? flag.value = false

? ? }

? ? function updataName(){

? ? ? obj.name = '李四'

? ? }

? ? function delAge(){

? ? ? delete obj.age

? ? }

? ? function addSchool(){

? ? ? obj.school = '北大'

? ? }

? ? return {

? ? ? msg:msg,

? ? ? msg2:msg2,

? ? ? updataMsg:updataMsg,

? ? ? flag:flag,

? ? ? changeFn:changeFn,

? ? ? obj:obj,

? ? ? updataName:updataName,

? ? ? delAge:delAge,

? ? ? addSchool:addSchool

? ? } */

? ? /* let msg = ref('謝謝你')

? ? function changzi(s){

? ? ? ?msg.value = s

? ? }

? ? return{

? ? ? msg,

? ? ? changzi

? ? } */

? ? let msg1 = ref('聽我說謝謝你')

? ? let str2 = ref('因?yàn)橛心?)

? ? let obj = reactive({

? ? ? name:"張三",

? ? ? age:30

? ? })

? ? /* vue3中使用provide 實(shí)現(xiàn)爺孫組件通信 */

? ? /* 提供數(shù)據(jù) 提供的數(shù)據(jù)名 數(shù)據(jù)值 */

? ? ?provide('info',obj)

? ? let str = computed(()=>{

? ? ? return msg1.value +str2.value

? ? })

? ? let s = computed(()=>{

? ? ? return msg1.value +str2.value+'溫暖了四季'

? ? })

? ? function str1Change(){

? ? ? ? msg1.value = 'ssadsad'

? ? }

? ? /* 在vue3中使用watch監(jiān)聽器 監(jiān)聽基本數(shù)據(jù)類型 */

? ? /* watch 第三個(gè)參數(shù)使用{immediate:true} 實(shí)現(xiàn)已進(jìn)入頁面立即監(jiān)聽*/

? ?/* ?watch(str,(newV,oldV)=>{

? ? ? console.log('新值是:'+newV);

? ? ? console.log('舊值是:'+oldV);

? ? },{immediate:true}) */

? ? ?function objChange(){

? ? ? ?obj.name = 'lisi'

? ? ?}

? ? ?/* vue3中實(shí)現(xiàn)對(duì)引用數(shù)據(jù)類型obj的監(jiān)聽 */

? ? /* watch(obj,()=>{

? ? ?console.log('我被監(jiān)聽了');

? ? }) */

? ? /* watch 對(duì) 對(duì)象里面單獨(dú)的某一個(gè)屬性進(jìn)行監(jiān)聽的時(shí)候需要使用箭頭函數(shù)的方式 */

? ? watch(()=>obj.name,()=>{

? ? ? console.log('name被監(jiān)聽了');

? ? })

? ? return{

? ? ? ?msg1,

? ? ? ?str2,

? ? ? ?str,

? ? ? ?s,

? ? ? ?str1Change,

? ? ? ?obj,

? ? ? ?objChange

? ? }

? }

}

</script>

CompB組件:

<template>

<!-- vue3 支持多個(gè)根元素 -->

? <h1 @click="changeZ">{{msg}}</h1>

? <h1>{{msg}}</h1>

</template>

<script>

export default {

props:['msg'],

/* 3咂堋! setup 里面的this不指向vue實(shí)例 */

setup(props,{emit}){

? ? /* 在setup 里面使用props的數(shù)據(jù),需要借助于setup方法第一個(gè)參數(shù) */

/* ? console.log(props.msg); */

? /* 在setup 中 使用子改父,需要借助于setup方法的第二個(gè)參數(shù) */

? /* ?console.log(context); */

? ?function changeZ(){

? ? ? ?emit('changzi','因?yàn)橛心?)

? ?}

? ?return{

? ? ? ?changeZ

? ?}

}

}

</script>

<style>

</style>

CompC組件:

<template>

? {{c}}

</template>

<script>

import {inject} from 'vue'

export default {

? setup(){

? ? ? /* 在vue3中導(dǎo)入inject 來實(shí)現(xiàn)爺孫通信,記得把值return出去 */

? ? ? const c = inject('info')

? ? ? return{

? ? ? ? ? c

? ? ? }

? }

}

</script>

<style>

</style>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烦租,一起剝皮案震驚了整個(gè)濱河市延赌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叉橱,老刑警劉巖挫以,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異窃祝,居然都是意外死亡掐松,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來大磺,“玉大人抡句,你說我怎么就攤上這事「芾ⅲ” “怎么了待榔?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)流济。 經(jīng)常有香客問我锐锣,道長(zhǎng),這世上最難降的妖魔是什么绳瘟? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任雕憔,我火速辦了婚禮,結(jié)果婚禮上稽荧,老公的妹妹穿的比我還像新娘橘茉。我一直安慰自己,他們只是感情好姨丈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布畅卓。 她就那樣靜靜地躺著,像睡著了一般蟋恬。 火紅的嫁衣襯著肌膚如雪翁潘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天歼争,我揣著相機(jī)與錄音拜马,去河邊找鬼。 笑死沐绒,一個(gè)胖子當(dāng)著我的面吹牛俩莽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乔遮,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼扮超,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了蹋肮?” 一聲冷哼從身側(cè)響起出刷,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坯辩,沒想到半個(gè)月后馁龟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漆魔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年坷檩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了却音。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淌喻,死狀恐怖僧家,靈堂內(nèi)的尸體忽然破棺而出雀摘,到底是詐尸還是另有隱情裸删,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布阵赠,位于F島的核電站涯塔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏清蚀。R本人自食惡果不足惜匕荸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枷邪。 院中可真熱鬧榛搔,春花似錦、人聲如沸东揣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘶卧。三九已至尔觉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芥吟,已是汗流浹背侦铜。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钟鸵,地道東北人钉稍。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像棺耍,于是被迫代替她去往敵國(guó)和親贡未。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容