父组件传值子组件,父组件改变,子组件不改变的问题

问题描述

如题目所述,贴出自己的解决方案,无非是父传子,子接收,通过深度监听,然后子传父,父组件值改变
update 和sync结合 ,节省父组件接收事件,在事件中改变值的步骤

父组件
 <div class="new_musical" @click="audio_bind">
              <Icon type="ios-musical-notes" />
           </div>
<audioModal  :audio_show.sync="audio_show"></audioModal>



 父组件改变子组件的方法:
  audio_bind:function() {

        this.audio_show = true
      
    }
子组件 Modal是个弹出层,  bindCanle方法是关闭弹出层,通过子组件向父组件传值,改变其状态
<Modal  v-model="audio_modal" width="410" footer-hide @on-visible-change="bindCanle">
watch:{
    audio_show:{
      handler (val, oldVal) {
      this.audio_modal=val
      }
    }, deep:true,immediate: true
  },

 bindCanle(e) {
      this.$emit('update:audio_show',e)
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 Vue 的组件中向组件,可以使用 props。下面是一个简单的示例: 组件: ```html <template> <div> <child-component :message="parentMessage"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, data() { return { parentMessage: 'Hello from parent!' } } } </script> ``` 组件: ```html <template> <div> <p>{{ message }}</p> </div> </template> <script> export default { props: { message: { type: String, default: '' } } } </script> ``` 在组件中,我们可以使用 `v-bind` 或简写的冒号语法将 `parentMessage` 递给组件的 `message` 属性。在组件中,我们可以使用 `props` 来接收递过来的,并在模板中使用它。 ### 回答2: Vue组件组件可以通过props属性实现。具体步骤如下: 1. 在组件中,通过props属性递需要递给组件。例如,组件中定义了一个数据属性"message",可以通过在组件标签中添加:message="message"的方式将该递给组件。 2. 在组件中,通过props属性接收组件递的。例如,组件中定义了一个props属性"message",可以通过this.message访问到该。在组件中就可以直接使用该。 下面是一个简单的示例代码: // 组件 <template> <div> <h1>组件</h1> <p>{{message}}</p> <ChildComponent :message="message" /> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { data() { return { message: 'Hello, Vue!' } }, components: { ChildComponent } } </script> // 组件 <template> <div> <h2>组件</h2> <p>{{message}}</p> </div> </template> <script> export default { props: ['message'] } </script> 在上面的示例中,组件通过props属性将message递给组件组件通过props属性接收到message并在页面中显示。 这就是Vue组件组件的基本步骤,通过props属性可以方便地在Vue中实现组件之间的数据递。 ### 回答3: 在Vue中,组件组件是通过props属性来实现的。具体步骤如下: 1. 在组件中定义需要递给组件的数据,可以是一个变量或对象。例如,组件中定义一个变量message,为"Hello, Vue!"。 2. 在组件的模板中使用组件,并通过props属性将数据递给组件。例如,使用<MyComponent :message="message"></MyComponent>的形式来递数据。注意,:message表示将组件中的message变量递给组件。 3. 在组件中通过props属性接收组件递的。例如,在组件中定义props属性message来接收组件递的。 4. 组件可以通过this.message来获取组件递的,并在自己的模板中进行使用。 下面是一个简单的示例代码: 组件: ``` <template> <div> <h1>组件</h1> <MyComponent :message="message"></MyComponent> </div> </template> <script> import MyComponent from './MyComponent.vue'; export default { data() { return { message: 'Hello, Vue!' }; }, components: { MyComponent } }; </script> ``` 组件: ``` <template> <div> <h2>组件</h2> <p>{{ message }}</p> </div> </template> <script> export default { props: ['message'] }; </script> ``` 在这个例中,组件中定义了一个message变量并将其递给组件组件通过props属性接收到message,并在自己的模板中进行使用。最终渲染结果为: 组件: ``` <h1>组件</h1> <MyComponent> <h2>组件</h2> <p>Hello, Vue!</p> </MyComponent> ``` 组件: ``` <h2>组件</h2> <p>Hello, Vue!</p> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值