vue组件父与子通信详解(一)


Posted in Javascript onNovember 07, 2017

本文实例为大家分享了vue组件父与子通信的具体代码,供大家参考,具体内容如下

一、组件间通信(父组件    -->  子组件)

步骤:

①父组件在调用子组件 传值

<child-component myValue="123"> </child-component>

②在子组件中 获取父组件传来的值

Vue.component('child-component',{
props:['myValue'],

template:''
})

代码1:

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>父传子</title>
 <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
 <p>{{msg}}</p>
 <parent-component></parent-component>
 </div>
 <script>
 // 在vue中一切都是组件
 //父传子
 Vue.component("parent-component",{
  data:function(){
  return {
   gift:"传家宝"
  }
  },
  template:`
  <div>
   <h1>这是父组件</h1>
   <hr>
   <child-component v-bind:myValue="gift"></child-component>
  </div>
  `
 })
 Vue.component("child-component",{
  props:["myValue"],
  template:`
  <div>
   <h1>这是子组件</h1>
   <p>{{"父传递的值:"+myValue}}</p>
  </div>
  `
 })
 new Vue({
  el:"#container",
  data:{
  msg:"Hello VueJs"
  }
 })
 </script>
 </body>
</html>

myValue是属性名,必须都一样……拿data中的用v-bind:或者:
props是property属性,是个数组

代码2:

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>父子之间通信练习</title>
 <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
 <p>{{msg}}</p>
 <my-login></my-login>
 </div>
 <script>
/*
 登录窗口
 创建4个组件,分别是my-label my-input my-button my-login(复合组件)
*/
 Vue.component("my-label",{
  props:["myLabel"],
  template:`
  <div>
   <label>{{myLabel}}</label>
  </div>
  `
 })
 Vue.component("my-input",{
  template:`
  <div>
   <input type="text"/>
  </div>
  `
 })
 Vue.component("my-button",{
  props:["myButton"],
  template:`
  <div>
   <button>{{myButton}}</button>
  </div>
  `
 })
 //复合组件
 Vue.component("my-login",{
  data:function(){
  return {
   uname:"用户名",
   upwd:"密码",
   login:"登录",
   register:"注册"
  }
  },
  template:`
  <div>
  <my-label v-bind:myLabel="uname"></my-label>
  <my-input></my-input>
  <my-label v-bind:myLabel="upwd"></my-label>
  <my-input></my-input>
  <my-button v-bind:myButton="login"></my-button> 
  <my-button v-bind:myButton="register"></my-button>
  </div>
  `
 })
 new Vue({
  el:"#container",
  data:{
  msg:"Hello VueJs"
  }
 })
 </script>
 </body>
</html>

代码3:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <script src="js/vue.js"></script>
 <title></title>
</head>
<body>

<div id="container">
 <my-login></my-login>
</div>

<script>

 Vue.component('my-label',{
 props:['labelName'],
 template:'<label>{{labelName}}</label>'
 })
 Vue.component('my-input',{
 props:['tips'],
 template:'<input type="text" :placeholder="tips"/>'
 })
 Vue.component('my-button',{
 props:['btnName'],
 template:'<button>{{btnName}}</button>'
 })

 Vue.component('my-login',{
 template:`
 <form>
  <my-label labelName="用户名"></my-label>
  <my-input tips="请输入用户名"></my-input>
  <br/>
  <my-label labelName="密码"></my-label>
  <my-input tips="请输入密码"></my-input>
  <br/>
  <my-button btnName="登录"></my-button>
  <my-button btnName="注册"></my-button>
 </form>
 `
 })


 new Vue({
 el: '#container',
 data: {
  msg: 'Hello Vue'
 }
 })
</script>

</body>
</html>

要拿到data中的数据就要v-bind,否则就不用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js宝典学习笔记(上)
Jan 10 Javascript
javascript实现的listview效果
Apr 28 Javascript
js下通过getList函数实现分页效果的代码
Sep 17 Javascript
jQuery cdn使用介绍
May 08 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
js从Cookies里面取值的简单实现
Jun 30 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
可以浮动某个物体的jquery控件用法实例
Jul 24 Javascript
JS实现为排序好的字符串找出重复行的方法
Mar 02 Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 Javascript
vue项目中定义全局变量、函数的几种方法
Nov 08 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 31 Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 #Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 #Javascript
vue中SPA单页面应用程序详解
Nov 07 #Javascript
vue-router实现组件间的跳转(参数传递)
Nov 07 #Javascript
详解Vue路由钩子及应用场景(小结)
Nov 07 #Javascript
Vue-Router实现组件间跳转的三种方法
Nov 07 #Javascript
vue 运用mock数据的示例代码
Nov 07 #Javascript
You might like
PHP集成FCK的函数代码
2008/09/27 PHP
php读取torrent种子文件内容的方法(测试可用)
2016/05/03 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
拖动时防止选中
2017/02/03 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
python解析xml简单示例
2019/06/21 Python
python实现图片上添加图片
2019/11/26 Python
Numpy之reshape()使用详解
2019/12/26 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
python模拟实现分发扑克牌
2020/04/22 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
毕业生的自我评价范文
2013/12/31 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
员工升职自荐信
2015/03/27 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸