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 相关文章推荐
IE DOM实现存在的部分问题及解决方法
Jul 25 Javascript
Tab页界面,用jQuery及Ajax技术实现
Sep 21 Javascript
jsPDF生成pdf后在网页展示实例
Jan 16 Javascript
超级简单的jquery操作表格方法
Dec 15 Javascript
分享网页检测摇一摇实例代码
Jan 14 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
Jul 13 Javascript
JavaScript的事件机制详解
Jan 17 Javascript
js代码延迟一定时间后执行一个函数的实例
Feb 15 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
Bootstrap栅格系统的使用详解
Oct 30 Javascript
js实现无限层级树形数据结构(创新算法)
Feb 27 Javascript
vue使用require.context实现动态注册路由
Dec 25 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
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
python实现关键词提取的示例讲解
2018/04/28 Python
Python中的TCP socket写法示例
2018/05/11 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
python实现排序算法解析
2018/09/08 Python
python实现连续图文识别
2018/12/18 Python
Python logging设置和logger解析
2019/08/28 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
社会保险接收函
2014/01/12 职场文书
人力资源主管的岗位职责
2014/03/15 职场文书
自强之星事迹材料
2014/05/12 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
武夷山导游词
2015/02/03 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
Golang 实现WebSockets
2022/04/24 Golang
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers