美文网首页
Vue ref方式父子组件传值方法

Vue ref方式父子组件传值方法

作者: 从零开始_b1ec | 来源:发表于2019-10-24 10:47 被阅读0次

Vue ref方式父子组件传值方法

<!doctype html>

<html>

<head>

<meta charset="UTF-8">

<script src="https://cdn.bootcss.com/vue/2.3.2/vue.min.js"></script>

</head>

<body>

<div id="box">

<v-tpl1></v-tpl1>

</div>

<template id="tpl1">

<div>

  <p>{{msg1}}</p>

  <!--触发拿子组件值的函数-->

  <button @click="getChild">父拿子的值</button>

  <!--通过ref绑定子组件的值-->

  <v-tpl2 ref="shit"></v-tpl2>

</div>

</template>

<template id="tpl2">

<p>{{msg2}}</p>

</template>

<script>

new Vue({

  el: '#box',

  components: {

  'v-tpl1': {

    template: '#tpl1',

    data(){

    return {

      msg1: 'msg1'

    }

    },

    methods: {

    //父组件定义一个方法通过refs拿到子组件的值

    getChild(){

      console.log(this.$refs.shit.msg2)

    }

    },

    components: {

    'v-tpl2': {

      template: '#tpl2',

      data(){

      return {

        msg2: 'msg2'

      }

      }

    }

    }

  }

  }

})

</script>

</body>

</html>

子拿父的值

<!doctype html>

<html>

<head>

<meta charset="UTF-8">

<script src="https://cdn.bootcss.com/vue/2.3.2/vue.min.js"></script>

</head>

<body>

<div id="box">

<v-tpl1></v-tpl1>

</div>

<template id="tpl1">

<div>

    <v-tpl2></v-tpl2>

</div>

</template>

<template id="tpl2">

<div>

  <button @click="getParent">子拿父的值</button>

  <p>{{msg2}}</p>

</div>

</template>

<script>

    new Vue({

  el: '#box',

  components: {

  'v-tpl1': {

    template: '#tpl1',

        data(){

    return {

      msg1: 'msg1'

    }

    },

    components: {

        'v-tpl2': {

        template: '#tpl2',

      data(){

      return {

        msg2: 'msg2'

      }

      },

      methods:{

      getParent(){

          console.log(this.$parent.msg1)

      }

      }

    }

    }

  }

  }

})

</script>

</body>

相关文章

网友评论

      本文标题:Vue ref方式父子组件传值方法

      本文链接:https://www.haomeiwen.com/subject/fpjrvctx.html