2022/2/24
关闭弹窗后校验还存在的解决方式:
https://blog.csdn.net/leng0920/article/details/117224378
dialog有一个@close,取消有一个@click=“cancel”
模拟api接口都是用的promise,new promise(resolve,reject) --然后resolve(response),
前端就通过await promise 或者 函数.then(response=>{}) 去获取res
2022/2/25
数组方法,比如some,想要用filter或其它方法的数据,可以采用闭包的方式,这样就可以了。
比如说 arr1.filter(item=> !arr2.some((ele)=>ele.id===item.id))) 这个句子的作用就是过滤掉arr1和arr2
之间存在相同的id的对象。
怎么去看别人写好的组件?要知道组件显示的内容本质上来说就是一整个标签的东西+ 父组件引入
的数据,看父组件引入的数据显示在哪个地方。
当然,组件严格来说就是一个.vue文件。有标签有js操作。但是怎么看组件很重要。
通过控制台调试,我发现,clearInterval会关闭计时器。想要重新计时,是var timer=null+clearInterval
终于知道为什么间隔刷新需要设置初始值timer为null了,这是为了给计时器赋值。
需要clearInterval(timer)了,因为为了防止其它计时器出现。
不要把重新计时和重新响铃弄混淆了,因为响铃有两个方法,一个播放,一个停止。所以都嵌套在定时器里面,
通过if隔开就行了。
今天大部分bug都改完了,我就来做个总结吧。
出现的问题:
页面问题:
1.页面样式:需要用自适应,那么很多东西不能设置width为准确的px值了,这里我设置的是百分比。
如果要设置距离,也是用的margin,比如margin-right
2.布局:我很喜欢用flex布局,但是它有时候会没有效果,我也不知道为什么,所以建议还是用float布局吧。
比如左边输入框右边按钮,float:left和float:right,一般float:right的现在float:left的前面。
如果没有居中对齐,比如说右边的偏上一点,可以设置右边的margin-top:-x px , x一边设置一边调就行。
3.el-dialog:有一个问题就是右上角的"x"号,需要自己去设置和cancel一样的事件,如@close=“cancel()”。
这个函数的作用一般就是用来清空form表单,还有清空表单校验的。避免用户在未保存的时候关闭,再次重启
打开的时候弹窗的输入框里还留着校验。。
4.el-form: ref的取值和 :model的取值需要一致。 如ref=“subform” :model=“subform”
5.其它的就比如这种,数据的二次处理显示啊,
< el-table-column label=“xx” align=“center” prop=“clockTime” width=“180” :show-overflow-tooltip=“true”>
< template slot-scope="scope">
< div>{{scope.row.clockTime?scope.row.clockTime:'-'}}< /div>
< /template>
< /el-table-column>
6.输入框中插入了一个问号,鼠标移至问号,上方会有提示,是这样做的:
< el-input
v-model=“codestr”
placeholder=“请输入服务器编号”
clearable
size=“small”
@keyup.enter.native=“handleQuery”
>
< i slot=“suffix” class=“el-input__icon el-icon-question” title=“多个编号,请使用逗号,空格隔开”>
< /el-input>
7.pagination是二次开发组件,记得不要忽略@pagination=“getList”,否则切页的时候不会刷新列表。
< pagination v-show="total>0"
:total="total"
:page.sync="pageParams.pageNo"
:limit.sync="pageParams.pageSize"
@pagination="getList"
/>
js问题:
1.定时器问题,我也不知道当时脑子怎么就短路了觉得很难,重新思考了一下需求恍然大悟,于是不再在计时器
上下功夫,而是在时间范围内做判断,条件对了就audio.play,条件错了就audio.stop
2.算是进一步明白了前后端接口是怎么联调的,前端又是怎么拿到后端返回的数据的,其实就是通过request请求
去获取,函数().then(res…)
以及因为传给后端,后端要的是json数据,所以比如后端要一个字符串,叫str吧,因为是json数据,所以前端
要传的应该是 params:{ str:""} ,传params给后端就行。
后端就通过{ str} 解构拿到str。
3.函数写在js文件里,可以是export function xxx,也可以是 export const xx = ()=>{}
然后通过import { xx } from ‘/.js’导入
4.学会了一种打印,console.log(变量,’ abc字符串’) 就不用像之前一样 console.log(变量),再console.log(‘字符串’)了
关于引入组件:
import HomeHeader from ‘./components/Header’ //不用写header.vue
export default {
name:‘Home’
components: { HomeHeader} //对象形式引入
}
我发现到vue2以后,语句都不用加冒号都可以用了。
//一分钟判断有无新增异常
//为什么一定要清空计时器呢,隔一段事件就检查达到了,不需要清空计时器
//在这段时间内,可以通过if,else语句判断,如果达到需求的,就alertBeep,没达到就stopBeep,是我想复杂了
关于rem和px,比如1rem=50 font-size,
那么font-size:43px等于多少rem呢?
就是把1rem分成50份,43px的就拥有43份,也就是1/50*43=0.86rem
width(rem)+ flex(1)+width(rem) ,rem可以和width混合着用
包裹着它们的要是display:flex
text-align:center肯定是对文字有效的,跟它是在盒子里的文字还是在什么标签的文字无关,只是会因为参照物
决定它的位置
text-align:center比如在一个width:60px的盒子里,那么它就是在这个盒子里居中对齐。
2022/2/28
react.js 教程http://www.ruanyifeng.com/blog/2015/03/react.html
注意,document.getElementById(“example”)—这里不要加分号,不然显示不出来
react就是可以用jsx,在jsx中标签可以是个变量,所有表达式在render中都是{}
在ReactDom.render中,一个逗号就代表一个句子,js要{},document.getElementById不用
组件和一个vue文件,他们其实组件也是一个vue文件,组件要跟vue借东西,所以用props借。所以props是组件用来跟vue借东西的工具,借一些值来用。
在组件看来它完成的是一个借值的过程,但是借值规借值,谁用它,它就在那里显示
组件的位置取决于谁引用,组件可以借值,借的值很关键
class HelloMessage extends React.Component {
render() {
return
123{this.props.name}
;}
}
ReactDOM.render(
<HelloMessage name="John" />,
document.getElementById('example')
)
2022/3/1
map和filter的区别。filter返回true和false,map返回的是item。他们都是返回新数组.
tcp,ip tcp是传输层,ip是网络层
是有了ip,所以可以连接其他计算机。
this. e m i t t h i s . emit this. emitthis.on on是接收,emit是触发,既然emit是触发,那么就是像写在click函数里的那种:https://www.youbaobao.xyz/admin-docs/guide/base/vue.html
vue-element-ui https://www.youbaobao.xyz/admin-docs/guide/base/vue-element-admin.html
在这里可以学习很多东西:https://www.youbaobao.xyz/admin-docs/guide/base/vue-element-admin.html
2022/3/2
开始学多选器怎么用了,无非是绑定数据,先把数据拿到。后续设置触发事件去对数据处理就行。
看代码就行。
我觉得有时候想知道一个方法,或者一个框架怎么用,往往都是一边看文档一边看代码,发现看代码是真的能
解决自己很多疑惑的,一定要学起来。