vue父组件和子组件数据传递

这篇具有很好参考价值的文章主要介绍了vue父组件和子组件数据传递。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue --父组件向子组件传递数据

父组件:

<template>
  <div class="parent">
    <p>父组件:{{ msg }}</p>
    <Child message="Hello, I am parent!"></Child>
  </div>
</template>

<script>
  import Child from './Child'
  export default {
    name: 'Parent',
    data () {
      return {
        msg: 'Hello world'
      }
    }
  }
</script>

<style lang="less" scoped></style>

子组件:

<template>
  <div class="child">
    <p>子组件:{{ message }}</p>
  </div>
</template>

<script>
  export default {
    name: 'Child',
    props: ['message'],
    data () {
      return {}
    }
  }
</script>

<style lang="less" scoped></style>

父组件向子组件传值方式:
1、父组件引入子组件,注册属性message
2、子组件通过props来获取到注册的属性message

页面显示:
 

vue父组件给子组件传值,前端,javascript,vue.js

转存失败重新上传取消

2、子组件触发事件向父组件传递数据

父组件:

<template>
  <div class="parent">
    <p>父组件:{{ msg }},显示子组件传来的值:{{ showChildData }}</p>
    <Child message="Hello, I am parent!" @event="handler"></Child>
  </div>
</template>

<script>
  import Child from './Child'
  export default {
    name: 'Parent',
    data () {
      return {
        msg: 'Hello world',
        showChildData: ''
      }
    },
    methods: {
      handler (data) {
        console.log(data)
        this.showChildData = data
      }
    }
  }
</script>

<style lang="less" scoped></style>

子组件:

<template>
  <div class="child">
    <p>子组件:{{ message }}</p>
    <input type="button" @click="transmit" value="向父组件传递数据">
  </div>
</template>

<script>
  export default {
    name: 'Child',
    props: ['message'],
    data () {
      return {
        childData: 'Hello, I am child'
      }
    },
    methods: {
      transmit () {
        this.$emit('event', this.childData)
      }
    }
  }
</script>

<style lang="less" scoped></style>

子组件向父组件传值方式:
1、父组件注册事件event
2、子组件由transmit事件方法,通过$emit('', data)向父组件传值

页面点击子组件按钮可以获得以下效果:

vue父组件给子组件传值,前端,javascript,vue.js

转存失败重新上传取消

3、父组件直接调取子组件数据

父组件:

<template>
  <div class="parent">
    <p>显示子组件传来的值:{{ showChildData }}</p>
    <Child ref="child"></Child>
    <input type="button" @click="getChildData" value="获取子组件的数据">
  </div>
</template>

<script>
  import Child from './Child'
  export default {
    name: 'Parent',
    data () {
      return {
        showChildData: ''
      }
    },
    methods: {
      getChildData () {
        this.showChildData = this.$refs.child.childData
      }
    }
  }
</script>

<style lang="less" scoped></style>

子组件:

<template>
  <div class="child">
    <input type="text" v-model="childData">
    <p>子组件:{{ childData }}</p>
  </div>
</template>

<script>
  export default {
    name: 'Child',
    data () {
      return {
        childData: 'Hello, I am child'
      }
    },
    methods: {}
  }
</script>

<style lang="less" scoped></style>

父组件直接获取子组件数据:
1、父组件引入子组件,添加ref属性
说明:ref 被用来给DOM元素或子组件注册引用信息。引用信息会根据父组件的 $refs 对象进行注册。如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子组件上,引用信息就是组件实例
注意:只要想要在Vue中直接操作DOM元素,就必须用ref属性进行注册
2、父组件直接通过 this.$refs.child.属性 获取数据
说明:在父组件里面通过以下方式获取子组件的属性和方法
this.$refs.child.属性
this.$refs.child.方法

页面效果:

vue父组件给子组件传值,前端,javascript,vue.js

转存失败重新上传取消

4、子组件直接调取父组件数据

父组件:

<template>
  <div class="parent">
    <input type="text" v-model="parentData" style="width: 500px;">
    <p>父组件:{{ parentData }}</p>
    <Child></Child>
  </div>
</template>

<script>
  import Child from './Child'
  export default {
    name: 'Parent',
    data () {
      return {
        parentData: 'Hello, I am parent!'
      }
    },
    methods: {}
  }
</script>

<style lang="less" scoped></style>

子组件:

<template>
  <div class="child">
    <p>子组件:{{ showParentData }}</p>
    <input type="button" @click="getParentData" value="获取父组件的数据">
  </div>
</template>

<script>
  export default {
    name: 'Child',
    data () {
      return {
        showParentData: ''
      }
    },
    methods: {
      getParentData () {
        this.showParentData = this.$parent.parentData
      }
    }
  }
</script>

<style lang="less" scoped></style>

父组件直接获取子组件数据:
1、父组件引入子组件
2、子组件直接通过 this.$parent.属性 获取数据
说明:在子组件里面通过以下方式获取子组件的属性和方法
this.$parent.属性
this.$parent.方法

页面效果:

vue父组件给子组件传值,前端,javascript,vue.js

转存失败重新上传取消

来源:https://segmentfault.com/a/1190000018862352?utm_source=sf-similar-article文章来源地址https://www.toymoban.com/news/detail-610941.html

到了这里,关于vue父组件和子组件数据传递的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包