赞
踩
1.在子组件标签上使用“ref”获取子组件的dom信息;
2.在子组件中调用其他函数,使用 this.$emit(‘事件名’,参数) 的方法触发事件;
3.子组件的参数被传递出去,父组件接收到参数;
子组件son.vue代码如下:
- <template>
- <div class="son">
- <button @click="sendnumber">sendnumber</button>
- </div>
- </template>
- <script>
- export default {
- name: 'son',
- data () {
- return {
- num:10
- }
- },
- methods: {
- sendnumber(){
- //this.$emit(‘事件名’,参数) 的方法向父组件传值
- this.$emit('addnumber',this.num)
- }
- },
- }
- </script>
父组件parent.vue代码如下:
- <template>
- <div class="parent">
- <son ref="sonMsg"></son>
- </div>
- </template>
- <script>
- import son from './son' //引入子组件
- export default {
- name: 'parent',
- components:{son}, //使用子组件
- data () {
- return {
- addnumber: ''
- }
- },
- mounted(){
- this.$refs.sonMsg.$on('addnumber', num =>{
- console.log(num+10);
- this.addnumber = num+10;
- })
- }
- /*错误写法
- // 需要注意,$on中定义的函数this是指向调用该事件的组件,也就是子组件
- // 使用箭头函数可以避免this指向 “错误”
- mounted(){
- this.$refs.sonMsg.$on('addnumber', function(num){
- console.log(num+10)
- this.addnumber = num+10
- })
- }*/
- }
- </script>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。