父组件中当点击搜索的时候请求接口,然后把新的数据用 computed 传递给子组件

<van-search
v-model="onSeachPhone"
show-action
placeholder="请输入电话号码后四位"
@search="onSearchPhone"
@clear="onCancelPhone"
>
<template #action>
<div @click="onSearchPhone">查询</div>
</template>
</van-search>
<seachPhone @history ="history" :phoneLists ="phoneLists" @PHides='PHides' :phoneHide='phoneHide' />
    <script>
     export default {
    components:{
        seachPhone,
   
    },
    data(){
        return{
            // maxDate: new Date(2900, 0, 31),
        
          
            phoneHide:false,
            phoneList:[],
            typeHide:false,
         
       
            
        }
    },
   
    computed:{
      phoneLists(){
        return this.phoneList
      },
    
    },
    methods:{
        history(val){
             this.userName = val.guestname;//客人姓名
             this.phone = val.telphone;//电话号码
             this.phoneHide = false;
        },
          PHides(val){
            console.log(val)
            this.phoneHide = val;
        },
        onSearchPhone(a){
            if(this.onSeachPhone != ''){
                console.log(this.onSeachPhone)
                SearchWine({
                    tel:this.onSeachPhone 
                })
                .then((e)=>{
                    if( e.code ==  ){
                        if(e.data.length >  ){
                            this.phoneList = e.data;
                            this.phoneHide = true;
                        }
                    }else{
                        this.$msg({
                            text:e.msg,
                            type:'info'
                        })
                    }
                })
            }else{
                this.$msg({
                    text:'都没输入你在摁什么?',
                    type:'info'
                })
            }
            </script>


 子组件中用watch 监听 phoneList 改变然后从新赋值在子组件点击的时候利用 this.$emit('方法名',参数)。   
<template>
<div class="">
<div class="card_model" v-if="phoneHide">
<div class="card-bock" >
<div class="titles">
<span class="model_juese">存酒记录</span>
<img @click="PHides" class="right imgright" src="@/assets/img/btn_close.png" alt="">
</div>
<div class="cardconter">
<div class="spanul">
<span>记录</span>
<ul class="ulactive van-tree-select__nav">
<li v-for="(a,b) in phoneListsaa" :key="b" @click="history(a)">
<span class="left">名字:{{a.guestname}}</span>
<span class="right">电话:{{a.telphone}}</span>
</li> </ul>
</div>
<!-- <div class="spanul">
<span>会员</span>
<ul class="ulactive van-tree-select__nav">
<li> 11111</li>
</ul>
</div> -->
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props:{
phoneHide:{
type:Boolean,
default:()=>{}
},
phoneLists:{
type:Array,
default:()=>[]
}
}, watch:{
phoneLists(a){
this.phoneListsaa = a
}
},
methods:{
PHides(){
this.$emit('PHides',false)
},
history(a){
this.$emit('history',a)
}
},
data(){
return{
phoneListsaa: this.phoneLists,
shows:true,
}
}
}
</script>
<style scoped>
.spanul span{
padding: 6px;
min-height: 34px;
line-height: 34px;
display: block;
}
.spanwindt{
width: 30.333%;
display: inline-block;
text-align: center;
border:1px solid rgba(66,139,202, .3);
margin: 1%;
color:#428BCA;
min-height: 34px;
line-height: 34px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis }
.ulactive li:nth-child(odd){
background: rgba(66, 139, 202, .03);
}
.bgccc{
background: #428BCA;
color: #fff;
}
.model_juese{
font-size: 16.2px;
margin: 0 auto;
display: block;
text-align: center;
border-bottom: 1px solid rgba(235,235,235,.6);
padding-bottom: 15px;
padding-top: 15px;
}
.card_model{
position: fixed;
background: rgba(0,0,0,.7);
z-index: 888;
width: 100%;
display: block;
top: 0;
left: 0;
bottom: 0;
}
.radiobtn{
width: 175px;
height: 40px;
color: #fff;
background: #428BCA;
display: block;
text-align: center;
margin: 0 auto;
border:none;
border-radius: 6px;
position: absolute;
bottom: 5%;
left: 24%;
/* margin-top: 231px; */
}
.cardconter{
position: relative;
width: 100%;
}
.imgright{
position: absolute;
right: 4%;
top: 4%;
display: block;
}
.card-bock{
width: 90%;
height: 500px;
background: #fff;
display: block;
margin: 0 auto;
position: relative;
border-radius: 10px;
top: 6%;
overflow-y: auto;
}
.ulactive{
height: 200px; }
.ulactive li{
padding: 6px;
min-height: 34px;
line-height: 34px;
border-bottom: 1px solid rgba(235,235,235,.3);
background: #F7F7F7FF;
}
.ulactive .activeLI{
background: rgba(66,139,202, .3);
color: #428BCA;
}
.van-search__content{
border: 1px solid #F7F8FA;
background: #fff;
}
.van-search .van-cell{
background: #fff;
}
.ulright{
background: #ffffff;
width: 65%;
display: inline-block;
float: right;
position: fixed;
right: 5%;
font-size: 13px;
height:71%;
overflow-y: auto;
}
.rightconter li {
color: #666666;
font-size: 13px;
font-family: PingFang-SC-Medium;
padding: 6px;
line-height: 34px;
min-height: 34px;
width: 95.5%;
position: relative;
}
.bgcolor .listli {
padding: 15px 15px;
}
.bgcolor li:nth-child(odd){
background: rgba(66, 139, 202, .03);
}
.bgcolor li:nth-child(even){
background: #FFFFFFFF;
}
</style>
    

vue watch/ computed的应用(做一个简单的父子之间的传递/电话号码的搜索)的更多相关文章

  1. MUI框架-05-用MUI做一个简单App

    MUI框架-05-用MUI做一个简单App MUI 是一个前端框架,前端框架就像 Bootstrap,EasyUI,Vue ,为了做 app 呢,就有了更加高效的 MUI,我觉得前端框架有很多,也没有 ...

  2. Vue.js 入门:从零开始做一个极简 To-Do 应用

    Vue.js 入门:从零开始做一个极简 To-Do 应用 写作时间:2019-12-10版本信息:Vue.js 2.6.10官网文档:https://cn.vuejs.org/ 前言  学习 Vue ...

  3. 使用ant design vue的日历组件,实现一个简单交易日与非交易日的切换

    使用ant design vue的日历组件,实现一个简单交易日与非交易日的切换 需求: 日历区分交易日.非交易日 可以切换面板查看整年交易日信息 可以在手动调整交易日.非交易日 演示实例 序--使用软 ...

  4. 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎

    Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...

  5. 使用React并做一个简单的to-do-list

    1. 前言 说到React,我从一年之前就开始试着了解并且看了相关的入门教程,而且还买过一本<React:引领未来的用户界面开发框架 >拜读.React的轻量组件化的思想及其virtual ...

  6. 【 D3.js 入门系列 --- 3 】 做一个简单的图表!

    前面说了几节,都是对文字进行处理,这一节中将用 D3.js 做一个简单的柱形图. 做柱形图有很多种方法,比如用 HTML 的 div 标签,或用 svg . 推荐用 SVG 来做各种图形.SVG 意为 ...

  7. 一起用HTML5 canvas做一个简单又骚气的粒子引擎

    前言 好吧,说是"粒子引擎"还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看demo 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单 ...

  8. Jmeter初步使用二--使用jmeter做一个简单的性能测试

    经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍 ...

  9. 用EF DataBase First做一个简单的MVC3报名页面

    使用EF DataBase First做一个简单的MVC3报名网站 ORM(Object Relational Mapping)是面向对象语言中的一种数据访问技术,在ASP.NET中,可以通过ADO. ...

随机推荐

  1. python-闭包和装饰器-01-闭包(closure)

    闭包(closure) 闭包就是在一个函数定义的内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包,如: def line(a, b): def cal( ...

  2. Java 异常处理专题,从入门到精通

    内置异常和Throwable核心方法 Java内置异常 可查异常(必须要在方法里面捕获或者抛出) ClassNoFoundException 应⽤程序试图加载类,找不到对应的类 IllegalAcce ...

  3. String常用处理方法

    1.去空格 用于删除字符串的头尾空白符. 语法:public String trim() 返回值:删除头尾空白符的字符串. 删除所有空格 str.replace(" ", &quo ...

  4. 【前端】H5,底边按钮吸边,但是覆盖了列表循环的内容

    我的说情况大致类似于: PS:因为底边那个模块 绝对是浮动的,所有会遮住列表最下面一条现实的一部分, 解决:这个时候把body的底边的内边距调整到可显示的就可以了: body { background ...

  5. abp框架Excel导出——基于vue

    abp框架Excel导出--基于vue 目录 abp框架Excel导出--基于vue 1.技术栈 1.1 前端采用vue,官方提供 1.2 后台是abp--aspnetboilerplate 2. E ...

  6. PHP preg_match() 函数

    preg_match 函数用于执行一个正则表达式匹配.高佣联盟 www.cgewang.com 语法 int preg_match ( string $pattern , string $subjec ...

  7. PHP xml_set_notation_decl_handler() 函数

    定义和用法 xml_set_notation_decl_handler() 函数规定当解析器在 XML 文档中找到符号声明时被调用的函数. 如果成功,该函数则返回 TRUE.如果失败,则返回 FALS ...

  8. PHP stripos() 函数

    实例 查找 "php" 在字符串中第一次出现的位置: <?php高佣联盟 www.cgewang.comecho stripos("I love php, I lo ...

  9. 剑指 Offer 53 - II. 0~n-1中缺失的数字

    本题 题目链接 题目描述 我的题解 二分法 思路分析 排序数组中的搜索问题,首先想到二分法 当nums[center] > center 时,缺少的数在左区间 当nums[center] = c ...

  10. Spring 中的反射与反射的原理

    作者:DeppWang.原文地址 在造轮子:实现一个简易的 Spring IoC 容器一文中提到 Spring 在创建 Bean 实例和依赖注入时使用了反射,本文来具体分析一下 Spring 中的反射 ...