• vue 父子间组件传值


    1.父组件向子组件传值:

      实例截图:

        

      实例代码:

    /*子组件代码*/     //child.vue
    <template>
      <div style="border: 1px solid red;margin: 10px;">
      	<h2>子组件</h2>
        <p>{{name}}</p>
      </div>
    </template>
    
    <script>
    export default {
    	props:{
    		name:{
    			//类型 普通类型:字符串(String)、数字(Number)、布尔值(Boolean)、空(Null)引用类型:数组(Array)、对象(Object)
    			/*其中,普通类型是可以在子组件中更改,不会影响其他兄弟子组件内同样调用的来自父组件的值,但是,引用类型的值,当在子组件中修改后,父组件的也会修改,那么后果就是,其他同样引用了改值的子组件内部的值也会跟着被修改。除非你有特殊的要求这么去做,否则最好不要这么做。*/
    			type:String,  
    			require:true,
    			default: "",  //默认值
    			validator: function (value) {   //验证器
    	        	return value;
    	      	}
    		},
    		
    	},
      data () {
        return {
          val:this.name
        }
      },
      mounted(){
      	console.log(this.name);
      	console.log(this.val);
      },
    }
    </script>

      

    /*父组件代码*/
    <template>
      <div class="hello">
      	<h1>父组件</h1>
      	<input v-model="msg">
        <Child :name="msg"></Child>  
      </div>
    </template>
    <script>
    	import Child from "@/components/child"
    export default {
      data () {
        return {
          msg: 'Welcome to Your Vue.js App'
        }
      },
      components:{
      	Child
      },
    }
    </script>
    

     

     2.子组件向父组件传值:

        实例截图:

          

        实例代码:

        

    /*子组件*/
    <template>
    	<div style="border: 1px solid red;margin: 10px;">
    		<h2>子组件</h2>
    		<p>{{val}}</p>
    		<button @click="sendMsg">向父传值</button>
    	</div>
    </template>
    
    <script>
    	export default {
    		data() {
    			return {
    				val: "aaaaaa"
    			}
    		},
    		methods:{
    			sendMsg(){
    				this.$emit("listen",this.val);
    			},
    		},
    	}
    </script>
    

      

    /*父组件*/
    <template>
      <div class="hello">
      	<h1>父组件</h1>
      	<input v-model="msg">
        <child  @listen="show"></child>  
      </div>
    </template>
    <script>
    import child from "@/components/child1"
    export default {
    	components:{
    	child
    },
      data () {
        return {
          msg: 'Welcome to Your Vue.js App'
        }
      },
      methods:{
      	show(val){
      		this.msg=val;
      	},
      },
    }
    </script>
    

      

    在通信中,无论是子组件向父组件传值还是父组件向子组件传值,他们都有一个共同点就是有中间介质,子向父的介质是自定义事件,父向子的介质是props中的属性。抓准这两点对于父子通信就好理解了(引至:https://www.cnblogs.com/daiwenru/p/6694530.html)

          

  • 相关阅读:
    video 安卓ios系统 浏览器 全屏播放以及自动播放的问题
    echarts 雷达图的个性化设置
    AtCoder Grand Contest 015 题解
    AtCoder Grand Contest 014 题解
    bzoj 3242: [Noi2013]快餐店
    bzoj 2794: Cloakroom dp
    bzoj 4261: 建设游乐场 费用流
    uoj problem 31 猪猪侠再战括号序列
    APIO2017 游记
    CTSC2017 游记
  • 原文地址:https://www.cnblogs.com/wangyunhui/p/9122336.html
Copyright © 2020-2023  润新知