这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战
数字类型转换为字符串类型:直接加上一个空字符串 123+'' —————————————————————————————————————
elementUI组件库 Layout 布局 —————————————————————————————————————
给标签添加属性,属性为布尔值是要动态添加属性,前面加: ——————————————————————————————————————
想要获得表格中某一行的所有数据,需要使用作用域插槽:
<template slot-scope="scope"> scope.row(表格一行的所有数据) <template>
自定义校验规则:先在data中通过var定义一个校验规则,它的值是一个箭头函数,箭头函数里有三个参数(rule,value,callback),一般是用正则表达式验证value是否合法,合法就return callback(),不合法就callback(new Error('错误信息')),最后通过validator 指定你定义的校验规则 代码如下:
data(){
var checkEmail=(rule,value,callback)=>{
const regEmail=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/
if(regEmail.test(value)){
return callback()
}
callback(new Error('邮箱不合法'))
}
rules: {
name: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
{validator:checkEmail,trigger: 'blur'}
}
git创建子分支,合并分支的用法 —————————————————————————————————
el-table-colum中想自定义内容(比如本来是文字,但你想用按钮),可以作用域插槽,看官方文档 ——————————————————————————————————
为标签添加多个类名: :class="['类名',index===0 ? '类名' : '类名']"(也可以使用三元表达式) ——————————————————————————————————
纵向居中:display:flex align-items:center
—————————————————————————————————————
elementUI组件库的Message Box弹框的用法 ——————————————————————————————————————
自定义插槽中,要更新表格中的一行数据,不用调用获取表格所有数据的方法,只需要直接修改那一行的数据即可
————————————————————————————————————
elementUI组件库:el-tree的用法,el-tree有获取当前选中和半选状态按钮的方法,可以用展开运算符...将它展开为数组
————————————————————————————————————
git:
0-创建新分支:git checkout -b 分支名,将新分支推送到云端:git push -u origin 分支名
1-查看当前分支:git branch
2-把所有修改过的文件添加到暂存区:git add .
3-把所有修改过的代码提交到当前分支:git commit -m "完成了。。功能的开发",
4-把当前分支提交到云端码云:git push ,(如果云端没有当前分支,需要再后面加 -u origin 分支名)
5-把当前分支合并到master主分支,先切换到主分支:git checkout master ,
6-基于主分主动合并:git merge rights(rights是当前分支名),
7-查看当前分支:git branch,
8-本地masterr分支已经是最新的了,再将本地master分支推送到云端:git push
axios的get请求如何携带请求参数:axios.get('请求地址', params: 请求对象}) ———————————————————————————————————————
vue组件全局注册的两种方法:Vue.use 和 Vue.component ———————————————————————————————————————
elementUI组件库里的级联选择器一定要指定prop属性,具体看官方文档 ——————————————————————————————————————
控制级联选择器的选择范围:级联选择器有v-model双向数据绑定,绑定的值是你选择的id数组,在监听级联选择器内容改变的方法@change事件中可以判断数组的长度,如果不是你期望的值就可以清空v-model数组,并且return
—————————————————————————————————————
按钮的启用和禁用和某种数据有关时可以使用计算属性,比如项目中,根据级联选择器的选择结果(根据v-model绑定的数组长度)判断按钮启用还是禁用,就使用了计算属性 ———————————————————————————————————————
渲染Tabs切换面板下面的数据时,从服务器返回的数据可能需要保存到两个不同的data中,然后判断到底渲染哪个,比如本项目中产品的分类参数(一个是动态参数,一个是静态参数),就需要在data(){}中定义manyTabData和onlyTabData,从服务器接受到数据后,判断是动态参数就保存到many中,静态参数就保存到only中
—————————————————————————————————————
VScode快捷键:ctrl+D:选中多个相同的文本,ctrl+B:隐藏侧边栏 —————————————————————————————————————
字符串转换为数组并以空格分割:str.split(" ") 数组转换为字符串并以空格分隔:arr.join(" ") 删除指定下标数组元素:arr.splice(i,1) ——————————————————————————————————————
展开行的el-tag标签:点击添加按钮时所有的添加按钮都变为了文本框,并且输入文字时所有的文本框都跟着输入了,因为表格的展开行和tag标签是遍历生成的,所有的tag标签用的是同一个控制文本框显示隐藏的数据,需要为每一个tag标签的添加按钮提供唯一的控制数据,方法是:在后台获取表格数据的时候,tag标签数据保存在后台数据的某一项中,并且是以字符串格式保存的,需要遍历后台返回的数据拿到tag标签数据后通过字符串转换为数组并以,分割,在遍历后台数据时,data.forEach(item=>{})item就是表格每行的数据,可以为表格每行数据添加属性:item.inputVisible=false,item.inputValue='',然后tag按钮的v-if="scope.row.inputVisible",v-model="scope.row.inputValue" —————————————————————————————————————
$nextTick方法的作用,就是当页面上的元素被重新渲染之后,才会执行回调函数中的代码 —————————————————————————————————————
Vue全局过滤器:【以定义时间戳过滤器为例】Vue.filter('dataFormat',function(value){
const dt=new Data(value)
const y=dt.getFullYear() //获取年份
const m=(dt.getMonth()+1+'').padStart(2,'0') //获取到的月份是从0开始需要+1,+''转换为字符串,用字符串的padStart方法,第一个参数的意思是不足两位,第二个参数是不足两位时用0占位补齐。
const d=(dt.getDate()+'').padStart(2,'0')
const hh=(dt.getHours()+'').padStart(2,'0')
const mm=(dt.getMinutes()+'').padStart(2,'0')
const ss=(dt.getSeconds()+'').padStart(2,'0')
return `${y}-${m}-${d} ${hh}:${mm}:${ss}` //这样的时间格式:2020-07-24 19:20:28
})
过滤器的使用:{{Origindata | dataFormat}}
———————————————————————————————————————— —
elementUI组件库Message Box的用法:首先在element.js文件中引入Message Box组件, 然后Vue.prototype.$confirm=MessageBox.confirm
const confirmResult=await this.$confirm(
'此操作将永久删除,是否继续?','提示',
{confirmButtonText:'确定',
cancelButtonText:'取消',
type:'warning'
}).catch(err=>err)
if(confirmResult!=='confirm'){
return this.$message.info('已取消删除')} //这个组件的返回值是promise,可以使用await和async
elementUI组件库步骤条组件 ———————————————————————————————————
elementUI组件库 的tab栏组件:el-tabs组件只允许el-tab-pane作为子节点,el-form只能包裹在el-tabs外面 ———————————————————————————————————
el-upload的action必须是绝对路径。上传图片时显示请求无效,没有权限(没有携带token):因为el-upload组件没有用axios发起请求,虽然你设置了axios拦截器(在每次发起请求前都添加了请求头的token信息),但是el-upload组件并没有用axios发请求,所以得手动为el-uplod组件设置请求头token【el-upload组件有header属性,:header动态绑定就可以】