亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue3中組件間怎么傳值

發布時間:2023-04-25 15:31:00 來源:億速云 閱讀:156 作者:iii 欄目:開發技術

這篇文章主要介紹了vue3中組件間怎么傳值的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇vue3中組件間怎么傳值文章都會有所收獲,下面我們一起來看看吧。

vue3組件間的傳值(props)

父組件向子組件傳值

在父組件中:

1.引入ref

vue3中組件間怎么傳值

2.定義要傳遞的屬性和屬性值

vue3中組件間怎么傳值

3.向vue頁面中的子組件傳遞該屬性屬性

vue3中組件間怎么傳值

傳遞屬性

:傳給子組件的名字(自定義) = “對應定義在父組件的屬性名”

在子組件中:

4.接收父組件傳來的屬性

props: {
 showDialogVisible: Boolean
},
setup() {
 return {
 }
}

5.注冊該組件

setup(props) {
    // 可以打印查看一下props傳過來的屬性以及屬性的值
	console.log(props);
	
	return {
		props
	}
}

6.在子組件的頁面使用該屬性

vue3中組件間怎么傳值

父組件向子組件傳值完成!

子組件向父組件傳值(常規)

  • 在子組件中:

由于vue數據傳遞是單向數據流,子組件沒有權利修改父組件傳過來的數據,只能請求父組件對原始數據進行修改,用emit 通知父組件去修改。

1.在子組件中定義要修改父組件那個屬性(或方法)的值

setup(props,context) {
    context.emit('setShow', false);
	
	return {
	}
}
//也可以:es6解構賦值取到emit
//setup(props,{emit}) {
//    emit('setShow', false);
//	
//	return {
//	}
//}

context.emit(‘傳入父組件自定義的屬性名’, 屬性值);

  • 在父組件中:

2.再頁面接收子組件中傳入的自定義屬性名,綁定在自身對應的屬性(方法)上

vue3中組件間怎么傳值

父組件向子組件傳值完成!

附上我的父組件方法:

vue3中組件間怎么傳值

子組件向父組件傳值(v-model)

如果子組件向父組件傳的值正好是父組件向子組件傳的值,可以直接在該屬性上進行雙向綁定。

注:閱讀此小節建議先看完第一節:父組件向子組件傳值

  • 在子組件上:

1.直接修改從props中拿到的屬性

vue3中組件間怎么傳值

  • 在父組件上:

2.在父頁面中的子組件上進行綁定

vue3中組件間怎么傳值

傳值完成!

vue3組件之間傳值和事件處理

這篇文章前自己也網上找了資料,發現這塊資料極少,所以還是自己記錄一下

項目需求是每個頁面需要加上頂部導航欄,加返回事件

vue3中組件間怎么傳值

 先寫子組件代碼,在components目錄下建一個nav.vue文件:

子組件nav.vue文件內容

<template>
   <div>
    <el-affix position="top" :offset="0">
        <div class="nav">
          <span @click="backGo"><img src="../assets/back.png"/>返回</span>
          <p>{{title}}</p>
        </div>
    </el-affix>
  </div>
</template>
<script setup>
import{ defineProps } from "vue"
const props =defineProps({ //子組件定義接收父組件傳過來的值
       title:String 
})
//點擊返回事件
const backGo = () => {
    history.back()
}
</script>
<style scoped>
.nav{width: 100%;height:.6rem;display: flex;align-items: center;justify-content: center;text-align: center;position: relative;background-color: #ffffff;border-bottom: 1px solid #f0f0f0;}
.nav span{position: absolute;height:100%;left: .2rem;top: 0;display: flex;align-items: center;color: #8a8a8a;}
.nav span img{width: .32rem;}
</style>

父組件aboutus.vue文件:

<template>
  <div class="wrap">
      <Nav title="關于我們"></Nav> <!--記住這里第一個字母大寫哦-->
        <div class="lists">
          <ul class="abus">
              <li><p><router-link to="/company">公司介紹</router-link></p></li>
              <li><p><router-link to="/privacy">隱私政策</router-link></p></li>
              <li><p><router-link to="/useragree">用戶協議</router-link></p></li>
          </ul>
      </div>
  </div>
</template>
<script setup>
import Nav from '@/components/nav.vue' 
 
</script>

記住引入子組件時,第一個字母大寫哦 !

是不是很簡單!

下面介紹子組件傳值

同樣是拿子組件nav.vue來測試,直接上代碼:

<template>
    <div>
    <el-affix position="top" :offset="0">
    <div class="nav">
      <span @click="backGo"><img src="../assets/back.png"/>返回</span>
      <p>{{title}}</p>
    </div>
  </el-affix>
    </div>
</template>
<script setup>
import{ defineProps ,defineEmits} from "vue"
const emits =defineEmits(['getBackGo']) //注冊父組件回調方法
const props =defineProps({
       title:String
})
const backGo = () => {
    // history.back()
    emits("getBackGo","傳個值給父組件!")
}
</script>
<style scoped>
.nav{width: 100%;height:.6rem;display: flex;align-items: center;justify-content: center;text-align: center;position: relative;background-color: #ffffff;border-bottom: 1px solid #f0f0f0;}
.nav span{position: absolute;height:100%;left: .2rem;top: 0;display: flex;align-items: center;color: #8a8a8a;}
.nav span img{width: .32rem;}
</style>

來看看父組件aboutus.vue寫法:

<template>
  <div class="wrap">
      <Nav title="關于我們" @getBackGo="getBackGoInfo"></Nav>
      <img src="../../assets/logo.jpg" class="logo"/>
      <div class="lists">
          <ul class="abus">
              <li><p><router-link to="/company">公司介紹</router-link></p></li>
              <li><p><router-link to="/privacy">隱私政策</router-link></p></li>
              <li><p><router-link to="/useragree">用戶協議</router-link></p></li>
          </ul>
      </div>
  </div>
</template>
<script setup>
import Nav from '@/components/nav.vue'
const getBackGoInfo = (value) => {
    console.log(value)
}
 
</script>

效果如下:

vue3中組件間怎么傳值

關于“vue3中組件間怎么傳值”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“vue3中組件間怎么傳值”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

萨嘎县| 万盛区| 桐梓县| 九江市| 中江县| 鹤庆县| 揭西县| 平原县| 鸡东县| 钦州市| 铜山县| 民乐县| 泰来县| 元朗区| 团风县| 玉树县| 阳信县| 织金县| 新巴尔虎左旗| 台中县| 永泰县| 河池市| 墨脱县| 且末县| 文水县| 陈巴尔虎旗| 石首市| 光泽县| 新昌县| 滦平县| 乳源| 乐山市| 临泉县| 原平市| 波密县| 潼关县| 磐石市| 三穗县| 东海县| 黔江区| 布尔津县|