1.defineEmits有时候有参数有时候没有 有什么区别吗
- 没有参数: 当事件没有特定的参数类型要求时,可以直接使用无参数的
defineEmits()。 - 有参数: 如果事件传递的参数有类型要求(例如字符串、数字等),则应该使用带有类型声明的
defineEmits()。
2.验证码的发送流程
先根据是否填写电话来判断是否发送验证码,验证码是后端通过第三方短信服务平台来发送短信,一般分为邮箱验证码和短信验证码,短信验证码比较贵,获取到验证码后填写,一般是5分钟,输入验证码后提交,数据库会检查是否在5分钟之内,最后如果有带姓名和身份证号的话,后端这边也是接入其他的接口,比如腾讯,腾讯又去接其他的接口,最后是能获取到身份证和姓名的对应关系的
3.动态添加路由
在企业项目中在vue和react中一般是没有路由表的,第一开发的时候写一个页面就要去添加一个路由很麻烦,第二就是有不同身份的人去使用这个项目,比如学校就有学生老师校长,不同的身份看到的页面不同,所以在最开始进入页面的时候去获取后端数据,就是菜单,然后再渲染到页面中,这样就可以渲染不同身份人所看到的不同的页面,最开始刚接手一个项目发现没有路由组,我还再想那我创建新文件夹添加新文件不加到路由组中怎么显示出来,后面发现是动态添加路由在登录成功后去获取的菜单
4.scss中穿透子组件
.detail {
height: 100%;
display: flex;
flex-direction: column;
:deep(.el-tabs__content) {
flex: 1;
overflow: auto;
padding: 16px 0;
}
}
类目为detail的盒子被封装成了一个组件,用这个组件去包裹其他盒子,如果盒子中有.el-tabs__content,就会显示上述代码的样式
5.小程序添加路由需要在pages.json中去添加
6.下载图片时尽量选择svg图片,svg图片是矢量可以让图片更清晰 其他格式的图片放大缩小会变模糊
7.overflow: scroll 自动出现滚动条
8.flex-grow: 1; 一个父盒子包裹两个子盒子 父盒子flex布局,当第一个子盒子只想设置固定宽高,剩下的空间非常大,怎么让第二个盒子自适应布局且填满,这时候就给第二个盒子设置flex-grow:1 可以填满剩余空间
9.为什么用来nuxt或next框架确在配置中禁用服务端渲染,虽然服务端渲染是他们两个的一个很大的特点,但是他们也有其他优点,比如文件路由,且客户端渲染已经能满足开发需求,且服务端渲染对服务器也有影响
10.同样是uni-app 微信小程序不支持dom元素操作,h5支持
11.关于怎么控制placehoder中字的样式, 先去开发者工具去获取样式获取到后设置并设置!importent就可以了,注意有什么它的父盒子或者上上级盒子或上上上会禁用掉这个属性,你就算设置!important也没有用,这种情况大概是你引入了组件库的组件,你得先去看这个组件的属性,有些时候它自带一些属性需要你传 你自己设置反而不生效。
12.查询字符串 和body是不一样的有些参数需要放在路径中,
13.在获取很多条数据要渲染到页面中的表格中的时候,后端的返回的结构不一定是表结构,数据展示不出来有可能是表结构的问题recodes可以关注一下
14 查找相同id
const index = formPut.value.findIndex(item => item.id === row.id); if (index !== -1) { // 如果找到了相同的 id,则替换掉该数据 formPut.value[index] = data; } else { // 如果没有找到相同的 id,则添加新的数据 formPut.value.push(data); }
15 404是压根没有这个路径,路径错误
16.当在某个组件去获取后端数据时 获取数据的方法都是异步方法,如果你直接在模板中使用这个数据就会报错,可以在模板的最顶层去用一个v-if去判断有没有获取到这个数据,获取到了再渲染出来
17.env文件 一般在viteconfig的测试环境跳转 env如果打包后默认引入的env.devleopment,如果是生产环境是env.product引入,两个文件中定义的路径不一样,