vue3.0父子傳參,子修改父數據的實現(xiàn)
更新時間:2022年04月29日 10:43:13 作者:鬧鬧沒有鬧
這篇文章主要介紹了vue3.0父子傳參,子修改父數據的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
父子傳參,子修改父數據
父組件
父親傳值給兒子,兒子可以修改父親的數據(同步)
<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>以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Props傳參v-for后TS報錯對象類型是unknow的解決方案
這篇文章主要介紹了Props傳參v-for后TS報錯對象類型是unknow的解決方案,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03
vue3簡單封裝input組件和統(tǒng)一表單數據詳解
最近有一個需求是很多個表單添加,編輯等操作,會用到很多input輸入框,所以就想把input進行簡單封裝,這篇文章主要給大家介紹了關于vue3簡單封裝input組件和統(tǒng)一表單數據的相關資料,需要的朋友可以參考下2022-05-05
使用Vue3和Plotly.js打造一個3D圖在線展示的實現(xiàn)步驟
三維網格圖廣泛應用于科學可視化、醫(yī)學成像、工程設計等領域,用于展示復雜的數據結構和空間分布,本文給大家介紹了使用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

