账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Vue 组件之间的控制
    24
    0

    有2个组件,A组件和B组件,A组件中有一个播放器,并且添加了播放器的播放和停止事件,要求B组件的多个按钮点击也能让A组件的播放器播放,而且是每点击一个就会暂停上一个,立刻播放下一个

    这个是A组件
    
     <img :src="start" alt="#" @click="changestart" class="seta">
    
    
     changestart() {
          if (this.start == "../../static/pic/start.png") {
            this.start = "../../static/pic/stop.png";
            this.$refs.player.play();
          } else {
            this.start = "../../static/pic/start.png";
            this.$refs.player.pause();
          }
    这个是b组件,也添加了click事件,还有其他功能
    <li v-for="(songNamelist,songIndex) in songName" v-bind:key="songIndex" class="songlist" @click="songChoose(songIndex,'/play')">
    
        songChoose(songIndex,z) {
          this.$router.replace(z)
          this.isresearch = false;
          this.ishow=false;
          this.keyword='';
        },

    有一个思路,因为用的是Vuex,点击B组件按钮用mutation提交修改state.xxx=true,A组件发现state的参数xxx=true然后执行播放,但是播放的函数不知道写在哪里

    这是播放的函数
    this.$refs.player.play()

    写到created里面不行,因为A没有重新加载,写到A的methods里面不知道该用什么来触发,watch也试过,xxx不知道该在哪里设置为false,请给一个解决方法或一个思路,非常感谢。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 万象小李 普通会员 1楼

      Vue 中的组件之间可以通过props(属性)和v-model(双向数据绑定)进行通信。 props 是组件从父组件传过来的数据,v-model 是组件之间双向数据绑定的方式,它可以在两个组件之间实时更新状态。

      以下是两种常见的方式:

      1. 使用 props 传递数据:

      ```html

      ```

      1. 使用 v-model 绑定数据:

      ```html

      ```

      在上面的示例中,父组件通过 props 传递数据给子组件,子组件通过 v-model 绑定数据到子组件。当子组件的数据发生变化时,会触发父组件的 updateData 方法,然后传递给子组件的 updateChildData 方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部