zoukankan      html  css  js  c++  java
  • Vue如何在父组件页面的方法事件中控制子组件中的值

    在Vue中,通常会自定义组件来实现页面上的渲染。页面需求中可能会有需要通过页面点击事件来控制各个板块的值,那么如何在父组件的事件中来控制自定义子组件的值呢?我这里总结了我用到的两种方法。

    1、通过vuex存储数据来控制值;

    2、通过dom页面调用子组件中的事件。

    第一种:通过vuex存储数据来控制值

    (1)现在假设一个场景:通过自定义组件写一个年月日或者省市区的控件,然后在父组件中,需要通过保存按钮获取子组件的值。还要通过清空按钮改变子组件中的值,使其值达到初始值或空值的状态。

    代码直接上:

    父组件:

    <time-picker :year="year" :month="month" :day="day"></time-picker>
    <div class="te_center m_top_20">
         <van-button type="default" @click="clearTime">清空</van-button>
         <van-button type="primary" @click="searchTime">提交</van-button>
    </div>

    子组件:

     父组件页面中,外部获取到数据之后,通过设置数据的时间,将值存入vuex中。

    通过点击清空按钮,通过清空数据的事件,改变vuex中相应的值。

     然后定义store中的js文件:

     

     这样定义了清空和设置的事件之后,就可以在父页面去相应的改变值了。

    第二种:通过dom页面调用子组件中的事件

    代码直接上:

    父组件:

    <price-input v-model="ruleForm.sellPriceStart" style=" 120px;" ref="input" placeholder="起始价格"></price-input>

    父组件中点击事件时,通过操作dom来进行子组件事件的调用。

    this.$refs.input.clearInput();

    子组件中定义清空数据的方法:

     methods: {
         clearInput(){
                this.inputNumber = '';
            }
        }

    总结:父组件可以通过dom使用子组件的事件(方法)

    这是我想到的两种方法来优化自定义组件的值控制问题。因为vuex知识比较薄弱,只是简单的尝试了一个demo,可能有一些出错的地方或说法,仅作为自己的学习记录。大神勿喷~~~

  • 相关阅读:
    在windows下如何批量转换pvr,ccz为png或jpg
    cocos2d-x 中的 CC_SYNTHESIZE 自动生成 get 和 set 方法
    制作《Stick Hero》游戏相关代码
    触摸事件的setSwallowTouches()方法
    随机生成数(C++,rand()函数)
    随机生成数
    cocos2d-x 设置屏幕方向 横屏 || 竖屏
    Joystick 摇杆控件
    兔斯基 经典语录
    Cocos2d-x 3.2 EventDispatcher事件分发机制
  • 原文地址:https://www.cnblogs.com/zjingjing/p/11899309.html
Copyright © 2011-2022 走看看