Vue中父组件向子组件通信的方法


Posted in Javascript onJuly 11, 2017

Vue是一个轻量级的渐进式框架,对于它的一些特性和优点在此就不做赘述。下面通过本文给大家分享Vue中父组件向子组件通信的方法,具体内容详情如下所示:

props

组件实例的作用域是孤立的。子组件的模板中是无法直接调用父组件的数据。

可以使用props将父组件的数据传给子组件。子组件在接受数据时要显示声明props

看下面的例子

<div id="app">
  <panda here='China'></panda>
</div>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<script>
  Vue.component('panda',{
    props:['here'],
    template:`<div>panda from {{here}}</div>`
  })
  new Vue({
    el: '#app'
  })
</script>

页面上展示的是 panda from China

处理属性中带'-‘的问题

Vue是不支持带杠的写法的。

如果上述的here变成from-here。需要这样写(小驼峰的写法)

<div id="app">
  <panda from-here='China'></panda>
</div>
<script>
  Vue.component('panda',{
    props:['fromHere'],
    template:`<div>panda from {{fromHere}}</div>`
  })
  new Vue({
    el: '#app'
  })
</script>

如果需要动态绑定,需要用到v-bind

<body>
  <div id="app">
    <panda :here='msg'></panda>
  </div>
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
  <script>
  Vue.component('panda',{
    props:['here'],
    template:`<div>panda from {{here}}</div>`
  })
  new Vue({
    el: '#app',
    data:{
      msg:'China'
    }
  })
  </script>
</body>

这样子组件就展示出了父组件的信息(把构造器中的data值传递给组件)。而且是动态绑定(用了v-bind)的。当父组件的data.msg发生变化的时候。子组件里面的内容也会相应的发生变化。

注意:props默认是单向绑定:当父组件的属性变化时,将传导给子组件,但是反过来不会。这是为了防止子组件无意修改了父组件的状态

以上所述是小编给大家介绍的Vue中父组件向子组件通信的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript-Mozilla和IE中的一个函数直接量的问题
Jan 09 Javascript
弹出广告特效(一个IP只弹出一次)的代码
Jul 27 Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 Javascript
jQuery选择器中含有空格的使用示例及注意事项
Aug 25 Javascript
JavaScript简介
Feb 15 Javascript
原生js编写焦点图效果
Dec 08 Javascript
详解javascript立即执行函数表达式IIFE
Feb 13 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
Jul 03 Javascript
使用webpack-dev-server处理跨域请求的方法
Apr 18 Javascript
使用layer弹窗和layui表单实现新增功能
Aug 09 Javascript
KOA+egg.js集成kafka消息队列的示例
Nov 09 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
Jul 11 #Javascript
网页中的图片查看器viewjs使用方法
Jul 11 #Javascript
自定义事件解决重复请求BUG的问题
Jul 11 #Javascript
关于js中的鼠标事件总结
Jul 11 #Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
Jul 10 #Javascript
angular学习之从零搭建一个angular4.0项目
Jul 10 #Javascript
在Vue中使用echarts的实例代码(3种图)
Jul 10 #Javascript
You might like
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
python安装本地whl的实例步骤
2019/10/12 Python
Python sys模块常用方法解析
2020/02/20 Python
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
联想C++笔试题
2012/06/13 面试题
高中打架检讨书
2014/02/13 职场文书
元旦晚会策划方案
2014/02/18 职场文书
班主任新年寄语
2014/04/04 职场文书
租房合同协议书
2014/04/09 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
金砖之国观后感
2015/06/11 职场文书