vue3.0父子傳參,子修改父數(shù)據(jù)的實(shí)現(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>父子組件傳值(語(yǔ)法糖)
父子組件交互
<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>以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue頁(yè)面回退或關(guān)閉,發(fā)送請(qǐng)求不中斷問(wèn)題
這篇文章主要介紹了vue頁(yè)面回退或關(guān)閉,發(fā)送請(qǐng)求不中斷問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Props傳參v-for后TS報(bào)錯(cuò)對(duì)象類型是unknow的解決方案
這篇文章主要介紹了Props傳參v-for后TS報(bào)錯(cuò)對(duì)象類型是unknow的解決方案,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03
詳解一次Vue低版本安卓白屏問(wèn)題的解決過(guò)程
這篇文章主要介紹了詳解一次Vue低版本安卓白屏問(wèn)題的解決過(guò)程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
vue3簡(jiǎn)單封裝input組件和統(tǒng)一表單數(shù)據(jù)詳解
最近有一個(gè)需求是很多個(gè)表單添加,編輯等操作,會(huì)用到很多input輸入框,所以就想把input進(jìn)行簡(jiǎn)單封裝,這篇文章主要給大家介紹了關(guān)于vue3簡(jiǎn)單封裝input組件和統(tǒng)一表單數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-05-05
使用Vue3和Plotly.js打造一個(gè)3D圖在線展示的實(shí)現(xiàn)步驟
三維網(wǎng)格圖廣泛應(yīng)用于科學(xué)可視化、醫(yī)學(xué)成像、工程設(shè)計(jì)等領(lǐng)域,用于展示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和空間分布,本文給大家介紹了使用Vue3和Plotly.js打造一個(gè)3D圖在線展示的實(shí)現(xiàn)步驟,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-07-07
Vue項(xiàng)目中使用WebUploader實(shí)現(xiàn)文件上傳的方法
WebUploader是由 Baidu WebFE(FEX) 團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)簡(jiǎn)單的以 HTML5為主 , FLASH為輔 的現(xiàn)代 文件上傳組件 。這篇文章主要介紹了在Vue項(xiàng)目中使用WebUploader實(shí)現(xiàn)文件上傳,需要的朋友可以參考下2019-07-07
Vue.js實(shí)現(xiàn)數(shù)據(jù)響應(yīng)的方法
這篇文章主要介紹了Vue.js實(shí)現(xiàn)數(shù)據(jù)響應(yīng)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08
詳解vue.js+UEditor集成 [前后端分離項(xiàng)目]
本篇文章主要介紹了詳解vue.js+UEditor集成 [前后端分離項(xiàng)目] ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07

