vue日常学习

1.$refs可以用来进行父子级间通信。ref被用于作为子组件的索引ID,用以方便的在js中直接访问子组件。用法如下parent.$refs.idname

使用方法:

在父级元素上加上ref属性

<button @click='change'>点击</button>
<app-test ref='child'></app-test>

  

methods:{
    change:function(){
      this.$refs.child.changehandle('父级传到子级')
    }
  }

  子组件部分:

<template>
	<div>
		<input type="text" v-model='test'  @change="changehandle(test)">
	</div>
</template>

  

methods:{
			changehandle:function(test){
				console.log(test)
				this.$emit('input',test)
			}
		}

  这样可以输出父级传入的内容,输出为‘父级传到子级’

 

2.双向数据绑定

使用v-model来进行双向数据绑定,但是实际上这只是一个语法糖,本质是事件监听。

<input v-model="something">

  

<input v-bind:value="something" v-on:input="something = $event.target.value">

prop动态绑定value值

让组件的 v-model 生效,它必须:

  • 接受一个 value 属性
  • 在有新的 value 时触发 input 事件

(1).在自定义组件上添加v-model

<app-test v-model='par_test'></app-test>
           <p>{{par_test}}</p>

(2).组件模板使用v-model进行双向数据绑定,然后$emit事件到外部,从而实现双向绑定。

<template>
	<div>
		<input type="text" v-model='test' @change="changehandle(test)">
	</div>
</template>

<script>
	export default{
		data() {
			return{
				test:'sc'
			}
		},
         props:['value'],//接受value属性 methods:{ changehandle:function(test){ console.log(test) this.$emit('input',test)//触发事件 } }
          } </script>

  

posted @ 2017-03-03 12:06  疯魔掉书袋  阅读(205)  评论(0编辑  收藏  举报