首页 > 其他分享 >listeners和v-model

listeners和v-model

时间:2023-06-12 09:56:01浏览次数:36  
标签:count 点击 listeners isLoading error 组件 model

<template>   <div id="app">     <LoadingButton @click="handlesClick"></LoadingButton>     <ceShi2></ceShi2>   </div>
</template>
<script> import LoadingButton from '@/components/demo/LoadingButton' import ceShi2 from '@/components/demo2/index.vue' export default {   name: 'App',   components: {     LoadingButton,ceShi2   },   methods:{     //目的:父组件向子组件发起通信,父组件完成后,子组件在进行执行     //第一种使用$emit来形成通信方式     // handlesClick(count,callback){     //   console.log(count)     //   setTimeout(()=>{     //     callback("请填写账号")     //   },3000)     // }
    //第二种使用$listeners    async handlesClick(count){       return new Promise((resolve)=>{         setTimeout(()=>{           resolve('成功次数:'+ count)         },1000)       })     }   } } </script>
<style> #app {   font-family: Avenir, Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

<template>
    <div>
        <button @click="handleClick" :disabled="isLoading">
            {{ isLoading ? "loading" : "submit" }}
        </button>
        <div class="err">{{ error }}</div>
    </div>
</template>
<!-- 
    实现子组件向父组件发起通信,父组件完成通信后,子组件在向下执行
    第一种方法:使用$emit()多个参数,整个回调函数,然后在父组件完成后,进行回调
    第二种方法:使用$listeners 
    $emit和$listeners区别:
        $emit符合单向数据流,子组件发出通知,父组件监听;$listeners在子组件直接使用父组件的方法(类似与函数)
        $emit受调试工具监控$listeners不受调试工具监控
        $listeners获取传递过来方法,因此调用方法可以知道返回值。但是$emit仅仅向父组件发送通知,操作都是由父组件完成,子组件无法进行参与,也就不知道父元素处理的结果,除非父元素返回结果

 -->
<script>
export default {
    data() {
        return {
            count: 0,//点击次数
            isLoading: false,
            error: 'aaa',
        }
    },
    methods: {
        //第一种使用$emit来形成通信方式
        // handleClick(){
        //         /*点击次数 +1  
        //           错误消息清空
        //           为了防止重复点击,将isloading设置true
        //           通知父组件,{我被点击了},并传递当前点击次数
        //           等待父组件处理(可能是异步),将父组件处理结果设置到error
        //         */
        //        this.count++;
        //        this.error='';
        //        this.isLoading=true;
        //        this.$emit('click',this.count,(error)=>{
        //         this.isLoading=false;
        //         this.error= error
        //        });

        //第二种使用$listeners来形成通信方式
    async handleClick() {
            /*点击次数 +1  
              错误消息清空
              为了防止重复点击,将isloading设置true
              通知父组件,{我被点击了},并传递当前点击次数
              等待父组件处理(可能是异步),将父组件处理结果设置到error
            */
            this.count++;
            this.error = '';
            this.isLoading = true;
             const result =  await this.$listeners.click(this.count);
             this.isLoading = false;
            this.error = result;
        
        }
    }
}
</script>

<style></style>

  v-model:实现数据双向绑定

标签:count,点击,listeners,isLoading,error,组件,model
From: https://www.cnblogs.com/wsx123/p/17474143.html

相关文章

  • 语言模型(Language Modeling)概述
    语言模型(LanguageModeling)是自然语言处理(NLP)领域的核心技术之一,它的目标是学习一种概率分布,用于表示自然语言文本中词汇和句子的组合。在本文中,我们将探讨语言模型的发展历史、技术细节以及应用方面。发展历史1.统计语言模型早期的语言模型主要基于统计方法,如N-gram模型。代表......
  • 时空图预测的方法论,以及 diffusion model 基本概念
    前天和善良的同学聊天,请教了①时空图预测的方法论,②diffusionmodel基本概念,记录下来。①时空图预测的方法论:首先,构造0~t-1时刻的t个图,每个图都有n个点。建图可以按照地理位置/特征相似性来建。貌似一般不会考虑边的权重,只考虑两点是否连接。然后,对这t个图......
  • Reward Modelling(RM)and Reinforcement Learning from Human Feedback(RLHF)for Large la
    一、RLHF技术的背景OpenAI推出的ChatGPT对话模型掀起了新的AI热潮,它面对多种多样的问题对答如流,似乎已经打破了机器和人的边界。这一工作的背后是大型语言模型(LargeLanguageModel,LLM)生成领域的新训练范式:RLHF(ReinforcementLearningfromHumanFeedback),即以强化......
  • sklearn和statsmodels中logit的区别
    sklearn中的logit是加了L2正则的逻辑回归,statsmodels中的是标准的LR 原文......
  • WPF 中的 经典的ModelView 通知页面更新 UI
    viewmodel------------------------------------------------------------------------------usingHPControls.Helper;usingSystem;usingSystem.ComponentModel;usingSystem.Threading;usingXiaowei.Models;usingXiaowei.Services;usingXiaowei.Settings;nam......
  • 云图说|ModelArts开发环境,让AI开发、探索、教学更简单
    摘要:ModelArts开发环境,以云原生的资源使用和开发工具链的集成,目标为不同类型AI开发、探索、教学用户。本文分享自华为云社区《【云图说】|第280期ModelArts开发环境,让AI开发、探索、教学更简单,提升云化AI开发体验~》,作者:阅识风云。ModelArts开发环境,以云原生的资源使用和开发工......
  • Vue基础之表单控制 ,v-model进阶,箭头函数,JS循环
    目录一、表单控制1.checkbox选中2.radio单选3、checkbox多选4.购物车案例-结算二、v-model进阶三、箭头函数es6的语法1无参数,无返回值2有一个参数,没有返回值,可以省略括号3多个参数,不能省略括号4多个参数,不能省略括号,一个返回值5一个参数,一个返回值四、补充:JS循环一、表......
  • Vue——表单控制、购物车案例、v-model进阶、与后端交互三种方式、箭头函数
    表单控制//1checkbox 单选 多选//2radio 单选<body><divid="app"><h1>checkbox单选</h1><p>用户名:<inputtype="text"v-model="username"></p><p>密码:<inputtype="p......
  • 表单控制,购物车案例,v-model进阶,与后端交互的三种方式
    1表单控制#1checkebox: -单选-多选#2radio -单选<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scriptsrc="./js/vue.js"></scrip......
  • vue前端model和data强关联
    如果不关联会报错,且错误不好找!......