Vue3+Vite+TS实现二次封装element-plus业务组件sfasga

目录
  • 1.结构字符串
  • 2.返回tuple元组
  • 3.访问Dict字典
  • 4.运用库
  • 5.在列表中切片/步进
  • 6.用 ranges

1.结构字符串

你会经常需求打印字符串。要是有很多变量,防止下面这样:

name = "Raymond"
age = 22
born_in = "Oakland, CA"
string = "Hello my name is " + name + "and I'm " + str(age) + " years old. I was born in " + born_in + "."
print(string)

这看起来多乱呀?你能够用个漂亮简约的办法来替代 .format 。

如下:

name = "Raymond"
age = 22
born_in = "Oakland, CA"
string = "Hello my name is {0} and I'm {1} years old. I was born in {2}.".format(name, age, born_in)
print(string)

2.返回tuple元组

Python允许你在一个函数中返回多个元素,这让生活更简单。但是在解包元组的时分出出线这样的常见错误:

def binary(): return 0, 1
result = binary()
zero = result[0]
one = result[1]

这是没必要的,你完整能够换成这样:

def binary(): return 0, 1
zero, one = binary()

要是你需求一切的元素被返回,用个下划线 _

zero, _ = binary()

就是这么高效率!

3.访问Dict字典

你也会经常给 dicts 中写入 keyvalue (键,值)。

假如你试图访问一个不存在的于 dict key ,可能会为了防止 KeyError 错误,你会倾向于这样做:

countr = {}
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]
for i in bag:
if i in countr:
countr[i] += 1 else:
countr[i] = 1
for i in range(10):
if i in countr:
print("Count of {}: {}".format(i, countr[i]))
else:
print("Count of {}: {}".format(i, 0))

但是,用 get() 是个更好的方法。

countr = {}
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]
for i in bag:
countr[i] = countr.get(i, 0) + 1
for i in range(10):
print("Count of {}: {}".format(i, countr.get(i, 0)))

当然你也能够用 setdefault 来替代。

这还用一个更简单却多费点开支的方法:

bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]

{2: 3, 3: 1, 1: 1, 5: 1, 6: 1, 7: 2, 9: 1}:

countr = dict([(num, bag.count(num)) for num in bag])
for i in range(10):
print("Count of {}: {}".format(i, countr.get(i, 0)))

我们也能够用 dict 推导式。

countr = {num: bag.count(num) for num in bag}

这两种办法开支大是由于它们在每次 count 被调用时都会对列表遍历。

4.运用库

现有的库只需导入你就能够做你真正想做的了。

还是说前面的例子,我们建一个函数来数一个数字在列表中呈现的次数。那么,曾经有一个库就能够做这样的事情。

from collections import Counter
bag = [2, 3, 1, 2, 5, 6, 7, 9, 2, 7]
countr = Counter(bag)for i in range(10):
print("Count of {}: {}".format(i, countr[i]))

一些用库的理由:

  • 代码是正确而且经过测试的。
  • 它们的算法可能会是最优的,这样就跑的更快。
  • 笼统化:它们指向明白而且文档友好,你能够专注于那些还没有被完成的。

最后,它都曾经在那儿了,你不用再造轮子了。

5.在列表中切片/步进

我们能够指定 start 的点和 stop 点,就像这样 list[start:stop:step] 。我们取出列表中的前5个元素:

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for elem in bag[:5]:
print(elem)

这就是切片,我们指定 stop 点是5,再中止前就会从列表中取出5个元素。

要是最后5个元素怎样做?

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for elem in bag[-5:]:
print(elem)

没看明白吗? -5 意味着从列表的结尾取出5个元素。

假如你想对列表中元素距离操作,你可能会这样做:

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for index, elem in enumerate(bag):
if index % 2 == 0:
print(elem)

但是你应该这样来做:

bag = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for elem in bag[::2]:
print(elem)

6.用 ranges

bag = list(range(0,10,2))
print(bag)

这就是列表中的步进。 list[::2] 意义是遍历列表同时两步取出一个元素。

你能够用 list[::-1] 很酷的翻转列表。

到此这篇关于Vue3+Vite+TS实现二次封装element-plus业务组件sfasga的文章就介绍到这了,更多相关二次封装element-plus业务组件sfasga内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vue接入ts基本方法

    目录 一.依赖记 二.配置记 三.修改记 1.将必要文件的.js替换为.ts 2.vue文件修改 四.填坑记 下面将以项目搭建的方式完成改文章叙述: 项目基础架构是通过cli搭建的,主要是vue(2.5.16)+ webpack(3.6.0)+ element-ui(2.8.2),整体项目还简单用了vuex,eslint等. 一.依赖记 项目从基础js改为ts,因为是初次尝试,本着最小依赖.最小改动原则,只引入了一些基础依赖: typescript:#3.1.6 -- 接入ts的基础依赖,版本需

  • vue项目中使用ts(typescript)入门教程

    目录 1.引入Typescript 2.配置文件webpack配置 3.让项目识别.ts 4.vue组件的编写 data()中定义数据 props传值 完整代码案例 最近项目需要将原vue项目结合ts的使用进行改造,这个后面应该是中大型项目的发展趋势,看到一篇不错的入门教程,结合它并进行了一点拓展记录之.本文从安装到vue组件编写进行了说明,适合入门. 1.引入Typescript npm install vue-class-component vue-property-decorator --

  • Vue3+Vite+TS实现二次封装element-plus业务组件sfasga

    目录 1.结构字符串 2.返回tuple元组 3.访问Dict字典 4.运用库 5.在列表中切片/步进 6.用 ranges 1.结构字符串 你会经常需求打印字符串.要是有很多变量,防止下面这样: name = "Raymond" age = 22 born_in = "Oakland, CA" string = "Hello my name is " + name + "and I'm " + str(age) + &quo

  • 如何使用Vue3+Vite+TS快速搭建一套实用的脚手架

    目录 前言 技术栈 开始构建 1. 初始化项目 2. 代码校验 3.代码格式化 4.配置路由 5.配置状态管理器 6.element-plus 7.封装axios 8.mockjs 9.css预处理 结语 前言 Vue3出了已经有一段时间了,之前做的项目基本都是Vue2+webpack做的,正好现在马上要接一个新的项目,先手撸一套脚手架试试水~ 技术栈 开发工具:VSCode 代码管理:Git 前端框架:Vue3 构建工具:Vite 路由:vue-router 4x 状态管理:vuex 4x A

  • vue3.0 移动端二次封装van-uploader实现上传图片(vant组件库)

    1.前提:业务需求,最多上传6张图片,并可以实现本地预览 2.解决方法:使用vant组件库中的van-uploader实现 3.代码实现 template <div class="upload-oss"> <van-uploader :after-read="onRead" :before-read="beforeRead" :accept="fileType" v-model="fileList&

  • vue-cli对element-ui组件进行二次封装的实战记录

    目录 为什么要element对进行二次封装? 如何对element对进行二次封装? 总结 为什么要element对进行二次封装? 1.element-ui组件的部分样式不满足当前项目的需求. element-ui组件的样式是固定的,比如我们常用的那些组件,table,button,icon,tab等等.当我们需要的样式和element组件有偏差的时候,我们可以通过针对element组件进行二次封装,然后通过Vue.component()方法,定义到全局,来解决我们当前的项目需求. 2.eleme

  • 基于element-ui表格的二次封装实现

    在项目中经常会使用到element的表格,如果每次都cv,也确实有点麻烦,基于这个情况我对表格进行了二次封装 写一个Table组件 首先先写表格样式 <el-table :data="tableData" :header-cell-style="headerStyle" :height="height" :border="border" @selection-change="handleSelectionCha

  • 对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解

    虽然jquery的较新的api已经很好用了, 但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯:2,可以对ajax操作做一些统一处理,比如追加随机数或其它参数.同时在工作中,我们还会发现,有一些ajax请求的数据,对实时性要求不高,即使我们把第一次请求到的这些数据缓存起来,然后当相同请求再次发起时直接拿之前缓存的数据返回也不会对相关功能有影响,通过这种手工的缓存控制,减少了ajax请求,多多少少也能帮助我们提高网页的性能.本文介绍我自己关于这两方

  • Element Plus组件Form表单Table表格二次封装的完整过程

    目录 前言 Form表单的封装 简述 正常的使用 开始封装① 开始封装② 开始封装③ 开始封装④ 完整封装代码⑤ 配置项类型文件 配置项文件 form表单组件文件 page-search组件文件 role页面组件文件 结语 Table表格的封装 简述 正常使用 开始封装① 开始封装② 开始封装③ 完整封装代码④ 配置项类型文件 配置项文件 table表单组件文件 page-table组件文件 user页面组件文件 结语 前言 直至今天,看了一下别人写的代码,才发现以前自己写的代码太垃圾,所以在这

  • Vue3 封装 Element Plus Menu 无限级菜单组件功能的详细代码

    目录 1 数据结构定义 1.1 菜单项数据结构 1.2 菜单配置数据结构 2 使用 tsx 实现封装 2.1 tsx 基本结构 2.2 定义 prop 2.3 递归实现组件 3 使用 SFC 实现菜单封装 3.1 封装菜单项的渲染 3.2 封装菜单组件 4 测试组件 4.1 菜单测试数据 4.2 测试页面 4.3 运行效果 总结: 本文分别使用 SFC(模板方式)和 tsx 方式对 Element Plus el-menu 组件进行二次封装,实现配置化的菜单,有了配置化的菜单,后续便可以根据路由

  • vue3+vite自定义封装vue组件发布到npm包的全过程

    目录 创建项目 创建组件 导出组件 使用vite构建 打包 注册->登录npm 发布前准备 发布到npm 参考: 总结 创建项目 “vue”: “^3.2.8” “vite”: “^2.5.2” 习惯用HB的直接用创建vue3项目即可 或 npm init vite@latest 创建组件 打开项目 在src/components文件夹下新增文件,我这里叫TestBtn.vue <template> <button>我是测试要发布的按钮组件</button> &l

  • element el-table表格的二次封装实现(附表格高度自适应)

    前言 在公司实习使用vue+element-ui框架进行前端开发,使用表格el-table较为多,有些业务逻辑比较相似,有些地方使用的重复性高,如果多个页面使用相同的功能,就要多次重复写逻辑上差不多的代码,所以打算对表格这个组件进行封装,将相同的代码和逻辑封装在一起,把不同的业务逻辑抽离出来.话不多说,下面就来实现一下吧. 一.原生el-tbale代码--简单の封装 这里直接引用官方的基础使用模板,直接抄过来(✪ω✪),下面代码中主要是抽离html部分,可以看出每个el-table-column

随机推荐