[IMWeb训练营作业]Vuejs的父子组件通信
来源:互联网 发布:windows桌面文件丢失 编辑:程序博客网 时间:2024/06/09 01:53
说明
- 父组件通过传递prop:list等到子组件实现通信。
- 子组件通过emit事件将item传到父组件实现通信。
运行效果
Demo
核心代码
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Select</title> <script src="vue.js"></script> <style> *{ margin:0; padding: 0; font-size: 12px; } .warp{ width: 200px; margin: 10px; padding: 10px; border: 5px solid #cca0cc; border-radius: 10px; background: #ccbacc; } .keyWord{ box-sizing: content-box; height: 16px; padding: 2px; /*border: 2px solid #bbb;*/ border-radius: 5px; } .keyBtn{ color:#fff; background: #cca0cc; box-sizing: content-box; height: 16px; padding: 2px; /*border: 2px solid #bbb;*/ border-radius: 5px; } /* 子组件 */ .list li{ margin-top:5px; display: block; list-style: none; text-decoration: none; color:white; height: 20px; padding: 2px; border-radius: 5px; } .list li:hover{ background: #cc88cc; cursor:pointer; } body{ display: flex; } </style></head><body> <div id="app"> <custom-select button-value="查询" v-bind:list="list1"></custom-select> </div> <div id="app2"> <custom-select button-value="搜索" v-bind:list="list2"></custom-select> </div> <script> // var obj={selectShow:true} // 注册component Vue.component("custom-select",{ data:function(){ return { selectShow:true,inputValue:"" } }, props:["buttonValue","list"], methods:{ changeValueHandle:function(item){ this.inputValue=item; } }, template:`<section class="warp"> <div class="searchIpt"> <div class="clearFix"> <input type="text" class="keyWord" v-bind:value="inputValue" v-on:click="selectShow=!selectShow"> <input type="button" v-bind:value="buttonValue" class="keyBtn"> <span></span> </div> <custom-ul v-show="!selectShow" v-bind:list="list" v-on:receive="changeValueHandle" ></custom-ul> </div> </section>` }) Vue.component("custom-ul",{ props:["list"], template:`<ul class="list" > <li v-for="item in list" v-on:click="selectValueHandle(item)">{{item}}</li> </ul>`, methods:{ selectValueHandle:function(item){ this.$emit("receive",item); } } }) var data = { list1:['今天的机票','明天的日程','还是睡觉吧'], list2:['今天','明天','后天'] } new Vue({ el:"#app", data:data }) new Vue({ el:"#app2", data:data }) </script></body></html>
0 0
- [IMWeb训练营作业]Vuejs的父子组件通信
- 【IMWeb训练营作业】vuejs【组件-下拉列表】实现
- [IMWeb训练营作业]基于Vuejs的Todo List
- [IMWeb训练营作业]基于Vuejs的Todo List
- 【IMWeb训练营作业】Vuejs 简单使用
- vuejs父子组件通信
- 【IMWeb训练营作业】vuejs简单任务列表实现
- 【IMWeb训练营作业】todoList using vuejs [partial]
- [IMWeb训练营作业]vuejs仿写朋友圈
- [IMWeb训练营作业]基于vue实现的select组件
- 【IMWeb训练营作业】select 组件初版
- 【IMWeb训练营作业】select组件
- 【IMWeb训练营作业】Select组件
- IMWeb训练营作业-仿select组件
- 【IMWeb训练营作业】select 组件
- 【IMWeb训练营作业】组件间通讯
- 【IMWeb训练营作业】select组件
- 【IMWeb训练营作业02 select组件】
- poj 2063 背包
- 不同的SQL JOIN对比
- 数据库
- 中缀表达式转后缀表达式
- 自动拍照扫描识别身份证信息SDK
- [IMWeb训练营作业]Vuejs的父子组件通信
- 字段昵称——定义表和字段的别名
- 《手把手教你学C语言》学习笔记(1)---C语言的特点
- 数据库<1.2> 初始MySQL
- IMWeb训练营作业-Select
- 自动拍照扫描识别身份证信息SDK
- 读《愿天堂就是书店的模样》
- c++操作mysql
- API Guide:APP组件-应用小部件主机