• vue传值(小demo)


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

    代码如下:

    <template>  
    <div class="userList">

    <el-table :data="list" border style=" 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就完成了。

    有不足,请指正。

  • 相关阅读:
    【转】java对File.listFiles()排序
    java 获取当前目录文件名
    python批量创建文件夹
    [好课推荐]数据结构与算法python实现
    SCI论文重复率与降重
    [转]一图搞定Matplotlib
    [GitHub寻宝]机器学习实战python3代码分享
    [好课推荐]人工智能实践:Tensorflow2.0
    [转]用深度学习给黑白照片上色
    java split函数分割字符串
  • 原文地址:https://www.cnblogs.com/yangisme/p/11641115.html
Copyright © 2020-2023  润新知