vue方法理解

这里是对官方文档的一点自我解读

首先是简单版本的

    <h3>简单版本——tag可以回调sayHi</h3>
    <div id="emit-example-simple">
        <welcome-button v-on:welcome="sayHi"></welcome-button>
    </div>
    
   <template id="template">
        <button v-on:click="$emit('welcome')">
            Click me to be welcomed
        </button>
    </template>
    <script>
	  Vue.component('welcome-button',{
	            template:template,
	        })
	   new Vue({
           el:"#emit-example-simple",
           methods:{
               sayHi:function(){
                   alert('Hi')
               }
           }
       })      
    </script>
  • 首先要明确一点:在new Vue里面的methods是在点击button一定会执行的
  • v-on是用来监听返回的数据,可能会有别的用途

看第二个版本

    <template id="complex">
        <button v-on:click="giveAdvice">
            Click me for advice
        </button>
    </template>
    <script>
            Vue.component('magic-eight-ball',{
            data:function(){
                return{
                    possibleAdvice:['Yes','No','Maybe']
                }
            },
            methods:{
                giveAdvice:function(){
                    var randomAdviceIndex=Math.floor(Math.random()*this.possibleAdvice.length)
                    this.$emit('give-advice', this.possibleAdvice[randomAdviceIndex])
                }
            },
            template:complex
        }); 
      new Vue({
           el:"#emit-example-argument",
           methods:{
               
               showAdvice:function(advice){
                   alert(advice);
               }
           }
       })           
    </script>
  • 先看new Vue 里面的代码 传入了一个数据advice 这就是来自于emit的值 而且他的命名可以任意,A,BC都可以
  • 再看component里面的methods
<script>
 this.$emit('give-advice', this.possibleAdvice[randomAdviceIndex])
 </script>

对应着应该是文档里的event-name 和参数——也就是上面advice会接受到的的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值