vue官网的例子有点看不懂,求解决

import Vue from 'vue'
//第一种
    Vue.component('todo-item', {
        props:['todo'],
        template: '<li>{{todo}}<button @click="$emit(remove)">X</button></li>'
    });
//第二种
    Vue.component('todo-items', {
      template: '\
        <li>\
          {{ todo }}\
          <button v-on:click="$emit(\'remove\')">X</button>\
        </li>\
      ',
      props: ['todo']
    })

我想问一下上面的这两种有什么区别,第二种是正确的写法,第一种就是错误的?还有就是这个""是什么意思?

具体的官网地址在:https://cn.vuejs.org/v2/guide...

位置在图片描述

阅读 6.3k
4 个回答

$emit的事件名'remove'需要是字符串。

仔细看下两种写法,注意第二种是'remove'并用反斜杠转义。

@click="$emit(remove)"
v-on:click="$emit(\'remove\')"

ES6规范,不能用双引号,要用单引号,所以要转义

这个难道不就是因为$emit要传入一个字符串么。。。

第二种是因为用单引号包裹,所以里面再用单引号就得转义。单引号和双引号换一下也没啥影响吧。

字符串换行要加斜杠,不然会报错,可用 ES6的反引号 xxx 代替

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题