Vue2.x通用编辑组件的封装及应用详解


Posted in Javascript onMay 28, 2019

本文实例为大家分享了Vue2.x通用编辑组件的封装及应用,供大家参考,具体内容如下

效果

 Vue2.x通用编辑组件的封装及应用详解

组件源码

<template>
 <div class="edit-input">
 <div class="editBox">
  <div>
  <span class="list">{{ name }}:</span>
  <span class="listValue" v-if="!editStatus">{{value}}</span>
  </div>
  <span class="editLogo iconfont icon-Edit" @click="editStatus = !editStatus" v-if="!editStatus"></span>
  <div class="edit" v-if="editStatus">
  <el-input v-model="newValue" :placeholder="placeholderDes"></el-input>
  <span class="confirmEdit" @click="changeValue">√</span>
  <span class="cancel" @click="editStatus = !editStatus">×</span>
  </div>
 </div>
 </div>
</template>

<script>
import '@/common/font/iconfont.css'
export default {
 props: {
 name: {
  type: String,
  require: true
 },
 value: {
  type: String,
  require: true
 },
 placeholderDes: {
  type: String,
  default: ''
 }
 },
 data () {
 return {
  newValue: '',
  editStatus: false
 }
 },
 methods: {
 changeValue () {
  this.$emit('valueChange', this.newValue)
  this.editStatus = false
 }
 }
}
</script>

<style lang="less" scoped>
.edit-input {
 .editBox {
 display: flex;
 margin-top: 10px;
 text-align: center;
 .list {
  color: #909399;
  font-size: 14px;
  line-height: 40px;
  display: inline-block;
  }
  .listValue {
  color: #303133;
  font-size: 14px;
  line-height: 26px;
  }
 .editLogo {
  color: #2695E4;
  padding-top: 12px;
  padding-left: 10px;
 }
 .edit{
  height: 50px;
  width: 260px;
  .confirmEdit {
  margin-left: 4px;
  width: 20px;
  height: 36px;
  display: inline-block;
  color: #67c23a;
  font-size: 20px;
  cursor: pointer;
  }
  .cancel {
  color: #929398;
  font-size: 20px;
  margin-left: 6px;
  cursor: pointer;
  width: 20px;
  height: 36px;
  display: inline-block;
  font-size: 26px;
  &:hover {
   color: #fa5555;
  }
  }
  .el-input {
  width: 200px;
  }
 }
 }
}
</style>

父组件中引用

<template>
 <div class="test">
 <v-edit-input placeholderDes="请输入新名称" name="测试名称" value="哈哈哈哈" @valueChange="changeValue"></v-edit-input>
 </div>
</template>

<script>
import VEditInput from '@/components/Common/EditInput'
export default {
 components: {
 VEditInput
 },
 methods: {
 changeValue (newVal) {
  // newVal即为修改后的新值,接下来用来与后端交互即可。
 }
 }
}
</script>

注:组件源码中import '@/common/font/iconfont.css'目的是为了引入编辑图标,图标使用于iconfont官网使用svg制作,实际应用时请删除此行代码,改为你自己的图标,即给.editLogo加个背景图即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 相关控件的事件操作分解
Aug 03 Javascript
用js实现的自定义的对话框的实现代码
Mar 21 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
往光标所在位置插入值的js代码
Sep 22 Javascript
Javascript 命名空间模式
Nov 01 Javascript
基于JavaScript实现右键菜单和拖拽功能
Nov 28 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
Jun 04 Javascript
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
使用express+multer实现node中的图片上传功能
Feb 02 Javascript
使用elementUI实现将图片上传到本地的示例
Sep 04 Javascript
JS数据类型判断的几种常用方法
Jul 07 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 #jQuery
小程序多图列表实现性能优化的方法步骤
May 28 #Javascript
实例详解带参数的 npm script
May 28 #Javascript
jquery实现Ajax请求的几种常见方式总结
May 28 #jQuery
Vue2.x通用条件搜索组件的封装及应用详解
May 28 #Javascript
jquery操作select常见方法大全【7种情况】
May 28 #jQuery
vue实现条件叠加搜索的解决方法
May 28 #Javascript
You might like
php中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
php 404错误页面实现代码
2009/06/22 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
php连接mysql数据库
2017/03/21 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
美国著名手表网站:Timepiece
2017/11/15 全球购物
《童年》教学反思
2014/02/18 职场文书
工作会议主持词
2014/03/17 职场文书
大学新闻系求职信
2014/06/03 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
财务稽核岗位职责
2015/04/13 职场文书
CSS基础详解
2021/10/16 HTML / CSS
idea下配置tomcat避坑详解
2022/04/12 Servers