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完成前后端分离项目的开发流程. 开发栈 前端 开 ...
随机推荐
- 容器镜像服务 联手 IDE 插件,实现一键部署、持续集成与交付
容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...
- java浅克隆和深克隆,序列化和反序列化实现深克隆(封装序列化和反序列化操作)
本篇博客内容: 一.浅克隆(ShallowClone)和深克隆(DeepClone) 二.序列化和反序列化实现深克隆 三.封装序列化和反序列化操作 ObjectOutputStream + 内存流By ...
- HDU 6230 Palindrome ( Manacher && 树状数组)
题意 : 给定一个字符串S,问你有多少长度为 n 的子串满足 S[i]=S[2n−i]=S[2n+i−2] (1≤i≤n) 参考自 ==> 博客 分析 : 可以看出满足题目要求的特殊回文子串其 ...
- R 保存图片——tiff
tiff(filename = "c:\\aaa.tiff", res = 800, pointsize = 2) plot(1:100) dev.off() tiff(file= ...
- 使用OpenLayers 勾画地图
<!DOCTYPE html> <html xmlns=http://www.w3.org/1999/xhtml> <head> <meta charset= ...
- 二进制安装MySQL5.6 MySQL5.7
1:系统版本 [root@vhost1 ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.5 (Santiag ...
- curl_init raw传递json参数
protected function curl_vm_record($url, $platform, $authorization, $jsonStr) { $ch = curl_init(); cu ...
- linux设置开机启动程序?
/etc/rc.d/init.d 是 /etc/init.d的目标链接. 如果/etc/rc.d下面没有 rc.local脚本文件, 则需要 手动创建: 而 /etc/bashrc 是在登陆bash ...
- Vue音乐播放器(三):项目目录介绍,以及图标字体、公共样式等资源准备
我们所有的开发都是基于修改src下面的目录 里面的文件去做开发即可 stylus的使用是需要下载stylus-loader的包的 渲染效果 配置修改eslintrc.js 配置了webpack.bas ...
- vmware14克隆后UUID相同的解决方法
查看网卡 UUID值 [root@localhost network-scripts]# nmcli connection showNAME UUID TYPE DEVICE ens33 cf228d ...