循序渐进VUE+Element 前端应用开发(6)--- 常规Element 界面组件的使用

9 阅读7分钟

总结

  • 框架原理真的深入某一部分具体的代码和实现方式时,要多注意到细节,不要只能写出一个框架。

  • 算法方面很薄弱的,最好多刷一刷,不然影响你的工资和成功率😯

  • 在投递简历之前,最好通过各种渠道找到公司内部的人,先提前了解业务,也可以帮助后期优秀 offer 的决策。

  • 要勇于说不,对于某些 offer 待遇不满意、业务不喜欢,应该相信自己,不要因为当下没有更好的 offer 而投降,一份工作短则一年长则 N 年,为了幸福生活要慎重选择!!!

喜欢这篇文章文章的小伙伴们点赞+转发支持,你们的支持是我最大的动力! 开源分享:docs.qq.com/doc/DSmRnRG… :data="productlist"

border

fit

stripe

highlight-current-row

:header-cell-style="{background:'#eef1f6',color:'#606266'}"

@selection-change="selectionChange"

@row-dblclick="rowDbclick"

JS逻辑代码如下:

rowDbclick(row, column) {

var id = row.ID

this.showView(id);

},

2、常规界面组件的使用

=======================================================================

一般情况下,我们使用界面组件的时候,参考下官网《Element组件使用》,寻找对应组件的代码进行参考,就差不多了,这里还是就各种常规的Element组件进行大概的介绍吧。

1)表单和表单项、单文本框


对于表单,我们一般定义一个对应的名称,并设置它的data对应的模型名称即可,如下所示。

而表单项,一般是定义好表单项的Label即可,然后在其中插入对应的录入控件或者展示控件。如对于单文本组件使用,如下所示。

其中 v-model=“editForm.ProductNo” 就是对应绑定的数据。

而表单项,可以添加对字段的验证处理,在数据提交前,可以校验客户的录入是否有效等。

<el-form-item

prop="email"

label="邮箱"

:rules="[

{ required: true, message: '请输入邮箱地址', trigger: 'blur' },

{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }

]"

注意这里表单项,必须添加一个prop的属性设置,如 prop=“email” 所示。

一般为了控制布局,我们还结合el-row进行一个布局的处理,如下代码所示(一行等于span为24,span=12也就是一行放两个控件组)。

2)、下拉列表控件的绑定


下拉列表的绑定处理,也是通过 v-model 进行值的绑定,而选项则可以通过数据列表进行绑定。

<el-option

v-for="(item, key) in typeList"

:key="key"

:label="item.value"

:value="item.key"

/>

而选项中的 typeList,我们可以在页面初始化的时候获取出来即可。

created() {

// 获取产品类型,用于绑定字典等用途

GetProductType().then(data => {

if (data) {

data.forEach(item => {

this.productTypes.set(item.id, item.name)

this.typeList.push({ key: item.id, value: item.name })

})

// 获取列表信息

this.getlist()

}

});

},

对于textarea常规的多行文本框,其实和普通单行文本框处理差不多,指定它的type=“textarea” 和 rows的数值即可。

而对于一些可能需要展示HTML内容的,我们可以使用DIV控件来展示,通过v-html标识来处理包含HTML代码的内容。

3)、图片展示


对于一些需要展示服务器图片,我们请求后,根据Element图片组件的设置处理即可,如下包括单个图片和多个图片的展示和预览操作。

在这里插入图片描述

图片展示的代码如下所示。

<el-image

style="width: 100px; height: 100px"

:src="viewForm.Picture"

:preview-src-list="[viewForm.Picture]"

/>

<el-image

style="width: 100px; height: 100px"

:src="viewForm.Banner"

:preview-src-list="[viewForm.Banner]"

/>

<el-image

v-for="item in viewForm.pics"

:key="item.key"

class="border-radius"

:src="item.pic"

style="width: 100px; height: 100px;padding:10px"

:preview-src-list="getPreviewPics()"

/>

上图中,如果是单个图片,那么预览我们设置一个集合为一个url即可,如 [viewForm.Banner],如果是多个图片,需要通过一个函数来获取图片列表,如 getPreviewPics() 函数所示。

getPreviewPics() {

// 转换ViewForm.pics里面的pic集合

var list = []

if (this.viewForm.pics) {

this.viewForm.pics.forEach(item => {

if (item.pic) {

list.push(item.pic)

}

})

}

return list

}

4)、第三方扩展控件


对于一些需要使用扩展组件的,我们一般搜索下解决方案,通过npm安装对应的组件即可解决,如对于条码和二维码,我使用 @chenfengyuan/vue-barcode和 @chenfengyuan/vue-qrcode,一般在Github上搜索下关键字,总能找到一些很受欢迎的第三方组件。

在这里插入图片描述

安装这些组件都有具体的说明,如下所示(如果卸载,直接修改install为uninstall即可)。

npm install @chenfengyuan/vue-barcode vue

以及:

npm install @chenfengyuan/vue-qrcode vue

条码和二维码的展示效果如下所示:

在这里插入图片描述

如果全局引入barcode和qrcode 组件,我们在main.js里面引入即可,如下代码所示:

// 引入barcode,qrcode

import VueBarcode from '@chenfengyuan/vue-barcode';

import VueQrcode from '@chenfengyuan/vue-qrcode';

Vue.component(VueBarcode.name, VueBarcode);

富文本编辑,我这里采用了 Tinymce 第三方组件来实现编辑处理,展示效果如下所示。

在这里插入图片描述

代码如下所示:

以上就是一些常规的界面组件的使用,后面在继续介绍文件上传和图片结合的操作。

3、自定义组件的创建使用

========================================================================

使用Vue的比以往BS开发的好处,就是可以很容易实现组件化,这点很好,一旦我们定义好一个控件,就可以在多个界面里面进行使用,非常方便,而且封装性可以根据自己的需要进行处理。

查询区域一般的界面效果如下所示,除了包含一些常用的查询条件,一般会有一些下拉列表,这些可能是后台字典里面绑定的内容,可以考虑作为一个通用的字典下拉列表组件来做。

在这里插入图片描述

其实界面录入的时候,也往往需要这些条件下拉列表的。

在这里插入图片描述

那么我们来定义一个自定义组件,并在界面上使用看看。

在Components目录创建一个目录,并创建一个组件的vue文件,命名为my-dictdata.vue,如下所示。

在这里插入图片描述

界面模板代码我们就一个select组件为主即可。

script脚本逻辑代码如下所示。

文末

从转行到现在,差不多两年的时间,虽不能和大佬相比,但也是学了很多东西。我个人在学习的过程中,习惯简单做做笔记,方便自己复习的时候能够快速理解,现在将自己的笔记分享出来,和大家共同学习。

个人将这段时间所学的知识,分为三个阶段:

第一阶段:HTML&CSS&JavaScript基础

第二阶段:移动端开发技术

第三阶段:前端常用框架

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 推荐学习方式:针对某个知识点,可以先简单过一下我的笔记,如果理解,那是最好,可以帮助快速解决问题;

  • 大厂的面试难在,针对一个基础知识点,比如JS的事件循环机制,不会上来就问概念,而是换个角度,从题目入手,看你是否真正掌握。所以对于概念的理解真的很重要。