vue传值(小demo)
vue+element ui实现的。解释大多在代码中(代码臭且长,有错误请指正)--

代码如下:
<template>
<div class="userList">
<el-table :data="list" border style="width: 60%;">
<el-table-column type="selection" width="60"/>
<el-table-column prop="userName" label="人物" width="300"/>
<el-table-column prop="sect" label="教派" width="300"/>
<el-table-column prop="kongfu" label="所修功法" width="300"/>
<el-table-column label="操作" width="300">
<template>
<el-button type="text" size="small" @click="handleDelete(row)">删除</el-button>
<el-button type="text" size="small" @click="handleEdit(row)">编辑</el-button>
</template>
</el-table-column>
</el-table> <el-dialog title="用户列表" :visible.sync="dialogFormVisible" width="30%" center>
弹窗组件,props传值最重要的就是在这里绑定:form="list"--这里的list是点击编辑,获取到的当前行的数据。
form则是子组件那边接受定义的数据,子组件props中可看到。
run是传过去的函数。子组件通过$emit溜过来触发,也就是子组件中this.$emit('close','')
来触发父组件中定义的事件,close就是触发@close="cancel()",@change相同
<popup :form="list" :run="run" @close="cancel()" @change="sub()"/>
</el-dialog>
</div>
</template>
<script> import popup from './popup.vue';
export default {
components: {
popup
},
data() {
return {
dialogFormVisible: false,
form: {
userName: '',
sect: '',
kongfu: '',
},
list: [
{
userName: '周芷若',
userId: '1',
sect: '峨眉',
kongfu: '九阴白骨爪'
},
{
userName: '张无忌',
userId: '2',
sect: '明教',
kongfu: '乾坤大挪移'
},
{
userName: '赵敏',
userId: '3',
sect: '朝廷',
kongfu: '有人'
},
{
userName: '张三丰',
userId: '4',
sect: '武当',
kongfu: '太极'
}
],
};
},
created() {
},
methods: {
//编辑
handleEdit(row) {
this.list = Object.assign({},row)
this.dialogFormVisible = true
},
//提交
sub(data) {
this.cancel()
},
//取消
cancel() {
this.dialogFormVisible = false
},
//删除
handleDelete(row) {
this.list.splice(row,1)
},
//测试props传递函数玩的
run() {
alert('儿子那边打开他爹这边的')
},
}
};
</script>
用户列表为element中dialog对话框,这个demo主要实现的就是父组件传值到子组件也就是传到这些个输入框中。

<template>
<div class="popup">
<el-form :data="form" ref="form" label-width="30%">
<el-form-item label="人物" prop="userName">
<el-input v-model="form.userName" placeholder="用户名称"/>
</el-form-item>
<el-form-item label="教派" prop="sect">
<el-input v-model="form.sect" placeholder="教派"/>
</el-form-item>
<el-form-item label="所修功法" prop="kongfu">
<el-input v-model="form.kongfu" placeholder="所修功法"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel()">取消</el-button>
<el-button type="primary" @click="sub()">提交</el-button>
</div>
</div>
</template> <script>
export default {
name: "popup",
接收父组件传过来数据和函数
props: {
form:{
type:Object,
dafaule : {
userName:'',
sect: '',
kongfu: '',
}
},
run:{
Function
}
},
data() {
return {
}
},
methods: {
//取消
cancel() {
this.$emit('close','');
点击取消触发父组件传过来的事件run,弹出下面的图
this.run()
},
//提交
sub() {this.$emit('change', '')
},
}
}
</script>

至此小demo就完成了。
有不足,请指正。
vue传值(小demo)的更多相关文章
- Vue.js小demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- iOS Block界面反向传值小demo
1.在第二个视图控制器的.h文件中定义声明Block属性: // 定义block @property (nonatomic, copy) void (^NextViewControllerBlock) ...
- 一个基于ES6+webpack的vue小demo
上一篇文章<一个基于ES5的vue小demo>我们讲了如何用ES5,vue-router做一个小demo,接下来我们来把它变成基于ES6+webpack的demo. 一.环境搭建及代码转换 ...
- 一个基于ES5的vue小demo
由于现在很多vue项目都是基于ES6开发的,而我学vue的时候大多是看vue官网的API,是基于ES5的,所以对于刚接触项目的我来说要转变为项目的模块化写法确实有些挑战.因此,我打算先做一个基于ES5 ...
- Vue.js之组件嵌套小demo
Vue.js之组件嵌套的小demo项目 第一步:初始化一个wabpack项目,这里不在复述.第二步:在components文件夹下新建Header.vue Footer.vue和Users.vue三个 ...
- vue入门 0 小demo (挂载点、模板、实例)
vue入门 0 小demo (挂载点.模板) 用直接的引用vue.js 首先 讲几个基本的概念 1.挂载点即el:vue 实例化时 元素挂靠的地方. 2.模板 即template:vue 实例化时挂 ...
- Vue异步组件Demo
Vue异步组件Demo 在大型应用中,我们可能需要将应用拆分为多个小模块,按需从服务器下载.为了进一步简化,Vue.js 允许将组件定义为一个工厂函数,异步地解析组件的定义.Vue.js 只在组件需要 ...
- vue自学小demo----前端
vue学习的小demo,实现简单的页面项目的增删 代码如下 <!DOCTYPE html> <html> <head> <meta charset=" ...
- SpringBoot-Vue实现增删改查及分页小DEMO
前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开 ...
随机推荐
- 第八周作业—N42-虚怀若谷
一.显示统计占用系统内存最多的进程,并排序 [root@centos7 ~]# ps -eo uid,pid,ppid,tty,c,time,cmd,%mem --sort=-%mem UID PID ...
- React Native 之createDrawerNavigator和createSwitchNavigator
其他代码接上篇文章 createDrawerNavigator 抽屉 createSwitchNavigator 模拟登录=>主界面 index.js /** * @format */ impo ...
- SQL—事物
[选择题]以下哪个选项是DBMS的基本单位,是构成单一逻辑工作单元的操作集合. A.进程 B.SQL C.事务 D.文件 分析: (1)一个事务包含一个或多个SQL语句,是逻辑管理的工作单元(原子单元 ...
- android读取xml
/*** 从config.xml中获取版本信息以及应用id* * @param urlPath* @return* @throws Exception*/public List getUpdateIn ...
- Java数据结构与算法(3):队列
队列也是一种表,不同的是队列在一端进行插入而在另一端进行删除. 队列模型 队列的基本操作包括入队.出队操作.在表的末端插入元素,在表的开头删除元素,即先进先出(FIFO). 队列的数组实现 对于每一个 ...
- k8s上的基础概念和术语
kubernetes基本概念和术语 kubeernetes中的大部分概念如Node,Pod,Replication Controller ,Serverce等都可以看作一种“资源对象”,几乎所有的 ...
- mysql 无法远程连接 没有监听端口
centos yum安装mysql: 远程连接完成用户授权和防火墙配置,可还是连接不上. 发现mysql没有监听3306端口. 修改mysql配置文件 vi /etc/my.conf 注释掉以下行,重 ...
- Linux内核调试方法总结之栈帧
栈帧 栈帧和指针可以说是C语言的精髓.栈帧是一种特殊的数据结构,在C语言函数调用时,栈帧用来保存当前函数的父一级函数的栈底指针,当前函数的局部变量以及被调用函数返回后下一条汇编指令的地址.如下图所示: ...
- react 类样式的一些使用方法
在 css类不想使用穿透的状态,可以再webpack配置 modules:true,它位于css-loader下,此外调用css的类时可能会自动生成一个hash值,这时候如果想显示本来的名字,可以打 ...
- bash中前后移动一个单词和删除单词的快捷键
bash中一个很重要的快捷键,就是向后删除一个单词: ctrl+w=ctrl+W 一个字符一个字符的移动是: ctrl+f, ctrl+b 但是, 一个单词一个单词的移动是: (但是, 这个用得比较少 ...