vue3.0父子傳參,子修改父數(shù)據(jù)的實現(xiàn)
更新時間:2022年04月29日 10:43:13 作者:鬧鬧沒有鬧
這篇文章主要介紹了vue3.0父子傳參,子修改父數(shù)據(jù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
父子傳參,子修改父數(shù)據(jù)
父組件
父親傳值給兒子,兒子可以修改父親的數(shù)據(jù)(同步)
<template>
? <div>
? ? 父組件
? ? {{ data }}
? ? <button @click="add()">修改</button>
? ? <hr />
? ? 子組件:<Son />
? </div>
</template><script>
import Son from "./components/Son.vue";
import { provide, ref, shallowRef ,readonly,shallowReadonly} from "vue";
export default {
? components: {
? ? Son,
? },
? setup() {
? ? let data = ref("123");
? ? let updata = () => {
? ? ? data += "==";
? ? };
? ? let add = ()=>{
? ? ? data+="=12"
? ? }
? ? provide("updata",updata);
? ? provide("show", data);
? ? return {
? ? ? data,
? ? ? updata,
? ? ? add
? ? };
? },
};
</script>
<style lang="less" scoped></style>子組件
<template>
? <div>{{son}}</div>
? <button @click="updataSon(12)">更改</button>
</template><script>
import { ref,inject } from "vue";
export default {
? setup() {
? ? const son = (inject("show"));
? ? const updataSon = inject("updata")
? ? return{
? ? ? ? son,
? ? ? ? updataSon
? ? }
? },
};
</script>
<style lang="less" scoped></style>父子組件傳值(語法糖)
父子組件交互
<template> ? ? <el-icon :size="size" :color="color" @click="change"> ? ? ? ? <component :is="name"></component> ? ? </el-icon> </template>
<script setup>
import { defineProps, defineEmits, defineExpose} from 'vue'
// 定義傳值類型
const props = defineProps({
? ? name: {
? ? ? ? type: String,
? ? ? ? required: true,
? ? },
? ? size: {
? ? ? ? type: String,
? ? ? ? default: '',
? ? },
? ? color: {
? ? ? ? type: String,
? ? ? ? default: '',
? ? },
})
// 定義事件名
const emit = defineEmits(['change'])?
// 觸發(fā)事件
const change =()=>{
? ? emit('change',{name:21231,data:456})
}
defineExpose({
? ? change,props
})
</script>以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue頁面回退或關(guān)閉,發(fā)送請求不中斷問題
這篇文章主要介紹了vue頁面回退或關(guān)閉,發(fā)送請求不中斷問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
Props傳參v-for后TS報錯對象類型是unknow的解決方案
這篇文章主要介紹了Props傳參v-for后TS報錯對象類型是unknow的解決方案,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03
vue3簡單封裝input組件和統(tǒng)一表單數(shù)據(jù)詳解
最近有一個需求是很多個表單添加,編輯等操作,會用到很多input輸入框,所以就想把input進行簡單封裝,這篇文章主要給大家介紹了關(guān)于vue3簡單封裝input組件和統(tǒng)一表單數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-05-05
使用Vue3和Plotly.js打造一個3D圖在線展示的實現(xiàn)步驟
三維網(wǎng)格圖廣泛應(yīng)用于科學(xué)可視化、醫(yī)學(xué)成像、工程設(shè)計等領(lǐng)域,用于展示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和空間分布,本文給大家介紹了使用Vue3和Plotly.js打造一個3D圖在線展示的實現(xiàn)步驟,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下2024-07-07
Vue項目中使用WebUploader實現(xiàn)文件上傳的方法
WebUploader是由 Baidu WebFE(FEX) 團隊開發(fā)的一個簡單的以 HTML5為主 , FLASH為輔 的現(xiàn)代 文件上傳組件 。這篇文章主要介紹了在Vue項目中使用WebUploader實現(xiàn)文件上傳,需要的朋友可以參考下2019-07-07
Vue.js實現(xiàn)數(shù)據(jù)響應(yīng)的方法
這篇文章主要介紹了Vue.js實現(xiàn)數(shù)據(jù)響應(yīng)的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08

