老师,帮忙解答下

老师,帮忙解答下

http://img1.sycdn.imooc.com//climg/5f06a9530965876806150756.jpg

官网里这段是什么意思,是说把input放在组件里面使用,要写成这样吗?

<body>
 <div id="example-6">
    <custom-input
        v-model="searchText"
    ></custom-input>
</div>
<script>
    Vue.component('custom-input', {
      props: ['value'],
      template: `
      <input  
      v-bind:value="value"
      v-on:input="$emit('input', $event.target.value)"
      >
      `
    })
    var vm=new Vue({
      el: '#example-6',
      data: {
        searchText: ''
      }
    })
</script>
</body>

不懂这种写法,为什么要 v-on:input="$emit('input', $event.target.value)" ,这里只是判处一个事件吗?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,理解的没错,代码修改的也是对的。可以添加如下去测试一下效果:

http://img1.sycdn.imooc.com//climg/5f06b9360922d67e06670397.jpg

输入内容,实现双向数据绑定:

http://img1.sycdn.imooc.com//climg/5f06b9540910608a02640110.jpg

另外,v-on:input="$emit('input', $event.target.value)是绑定了一个input事件,input事件是输入时触发的。$emit是触发父组件的自定义事件的,这里就是在输入框输入内容时,触发父组件的自定义事件input事件,然后把当前输入的值$event.target.value传递给父组件。$event.target.value相当于实参,searchText相当于形参,所以输入什么内容,searchText也会跟着改变,实现了双向数据绑定。

上面说的父组件自定义事件,就是v-model实现的,如下:

当我们绑定了一个v-model,实际包含了两个过程。

http://img1.sycdn.imooc.com//climg/5f06bc7209aed82505830055.jpg

如下是官方网站对v-model="searchText"的拆分讲解,它的绑定过程是这样的:

http://img1.sycdn.imooc.com//climg/5f06bc60090818a304530184.jpg

上面只是讲解的原理,了解一下就行,不懂也没有关系。按照给出的代码使用即可。

另外,本站的教学服务只包含站内视频内容问题解答、站内习题问题解答、站内作业问题解答、站内测试题问题解答以及站内产品使用问题解答。同学的问题内容与本站视频、习题以及作业等内容无关联,故不包含在本站的教学服务内。但是看同学比较爱学习,所以老师这次破例为你讲解。同学现在还刚入门,掌握的技术还不够全面,基础相对比较薄弱,而官方网站适合有一定基础或者工作了几年的开发人员进行查阅,建议同学合理安排时间,先学习课内知识,等基础有一定提升之后,再去看课外资料哦。

祝学习愉快~

  • qq_勿忘初心_H 提问者 #1
    谢谢老师,视频中老师说让我们看官网,不懂的可以问
    2020-07-09 17:04:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师