IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue组件父子通信基础篇(传值与事件) -> 正文阅读

[JavaScript知识库]Vue组件父子通信基础篇(传值与事件)

vue开发中我们经常会使用或者开发一些组件,这篇文章我们就来聊聊组件之间的父子通信。
一、Props

这是官方的解释:Prop 是你可以在组件上注册的一些自定义 attribute;
在我们日常开发中使用的非常多,简单都说它就像是一个抽水机,可以把池子里的水抽到盆里。但不能逆向输出。

下面我们来看一个例子吧,(亲可复制代码执行哦)

<div id="app">
    {{message}}
    <br />
    <button @click="saveMoney">存钱</button>
    <!--银行卡组件-->
    <card :deposit="money"></card>
</div>
<script>
    //首先我们注册一个全局组件
    //好比这是我们存钱的银行卡,每天努力工作赚钱存钱,娶媳妇儿
    Vue.component("card",{
        template:"<h1>¥:{{deposit}}</h1>",
        props:[
            "deposit"
        ],
        data:function(){
            return {

            }
        },
    })

    //每天努力工作
    var vu = new Vue({
        el:"#app",
        data:{
            message:"",
            money:0,
        },
        created(){
            this.message = "好好工作,赚钱钱";
        },
        computed:{

        },
        methods:{
            //老板发工资啦,存钱事件
            saveMoney:function(){
                var money = this.money;
                this.money = ++money;
            }
        }

    })
</script>

?全局组件card中,我们通过porps接受在组件注册时自定义的任意的属性列表。动态传值只需要在属性名前加上v-bind即可

二、$emit?

触发当前实例上的事件。附加参数都会传给监听器回调。简单说就是我们可以在组件中自定义事件,子组件中使用 this.$emit 来调用。
?

<div id="app">
    {{message}}
    <br />
    <button @click="saveMoney">存钱</button>
    <!--银行卡组件-->
    <card :deposit="money" @mycard="getMoney"></card>
</div>
<script>
    //首先我们注册一个全局组件
    //好比这是我们存钱的银行卡,每天努力工作赚钱存钱,娶媳妇儿
    Vue.component("card",{
        template:"<div><h1>¥:{{deposit}}</h1>" +
            "<button @click='payMoney'>存钱通知</button></div>",
        props:[
            "deposit"
        ],
        data:function(){
            return {

            }
        },
        methods:{
            payMoney(){
                var param = {
                    "money":1000,
                    "msg":"已存入1000元整"
                };
                this.$emit("mycard",param);
            }
        },
    })

    //每天努力工作
    var vu = new Vue({
        el:"#app",
        data:{
            message:"",
            money:0,
        },
        created(){
            this.message = "好好工作,赚钱钱";
        },
        computed:{

        },
        methods:{
            //老板发工资啦,存钱事件
            saveMoney:function(){
                var money = this.money;
                this.money = ++money;
            },

            getMoney(ev){
                console.log(ev);
            }
        }

    })
</script>

三、ref通信

ref 是用来给DOM或者子组件注册应用信息,父组件中可以直接使用 this.$refs.componentName调用子组件中的方法或data数据。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:15:56  更:2021-09-02 11:16:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/28 7:45:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码