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 相关文章推荐
XHTML-Strict 内允许出现的标签
Dec 11 Javascript
jquery 获取dom固定元素 添加样式的简单实例
Feb 04 Javascript
ajax级联菜单实现方法实例分析
Nov 28 Javascript
详解JavaScript树结构
Jan 09 Javascript
如何使用bootstrap框架 bootstrap入门必看!
Apr 13 Javascript
快速使用node.js进行web开发详解
Apr 26 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
Jun 15 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
Aug 18 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
Vue导出页面为PDF格式的实现思路
Jul 31 Javascript
vue 获取及修改store.js里的公共变量实例
Nov 06 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
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
对Session和Cookie的区分与解释
2007/03/16 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
CI框架表单验证实例详解
2016/11/21 PHP
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
python中执行smtplib失败的处理方法
2020/07/01 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
优秀毕业生推荐信范文
2014/03/07 职场文书
留学经费担保书
2014/05/12 职场文书
大型演出策划方案
2014/05/28 职场文书
就业推荐表导师评语
2014/12/31 职场文书
在职证明书模板
2015/06/15 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android