做网站怎么赚钱 111,网站建设试卷,正规的网上购物平台,湘潭网站建设 h磐石网络1.自我介绍
2.在实习中#xff0c;你负责那一模块
3.any与unknow的异同
相同点#xff1a;any和unkonwn 可以接受任何值
不同点#xff1a;any会丢掉类型限制#xff0c;可以用any 类型的变量随意做任何事情。unknown 变量会强制执行类型检查#xff0c;所以在使用一个…1.自我介绍
2.在实习中你负责那一模块
3.any与unknow的异同
相同点any和unkonwn 可以接受任何值
不同点any会丢掉类型限制可以用any 类型的变量随意做任何事情。unknown 变量会强制执行类型检查所以在使用一个 unknown 类型的变量之前你需要进行类型检查。
4. type 与 interface 和 class 的异同
Class是用于定义对象的结构和行为它是数据和行为的封装实现方法。
Interface是用于描述对象的结构和行为的规范它是对类的抽象。接口定义了对象应具备的属性和方法但不提供实现。 接口可以用来描述类的公共部分并且类可以实现一个或多个接口。
Type是用于定义数据的形状和结构它是对数据的抽象。
Class用于创建对象Interface用于定义规范而Type用于定义数据类型。
class与interface的区别
type 是 TypeScript 中用于定义类型别名、联合类型、交叉类型等复杂类型的声明方式。type 和 interface 定义的类型信息在编译后的 JavaScript 代码中被移除因为它们仅在编译阶段用于类型检查。换句话说type 不需要运行时信息。相比之下class 定义的类型信息会保留在编译后的代码中因为它们包含实际的属性和方法实现这些信息在运行时是必需的。interface 主要用于定义对象的类型和结构不提供具体实现。它支持继承extends和实现implements。
interface与type的区别
interface 使用 extends 实现继承 type 使用交叉类型实现继承。type 可以类型别名会给一个类型起个新名字声明基本类型、联合类型、交叉类型、元组。interface 不行。 interface可以合并重复声明type 不行重复声明 type 就报错了
interface Person { name: string
}
type Person { name: string
}interface Student extends Person { grade: number
}
interface Student extends Person { grade: number
}type Student Person { grade: number } 用交叉类型
type Student Person { grade: number } 用交叉类型const person:Student {name: lin,grade: 100
}type Name string // 基本类型type arrItem number | string // 联合类型const arr: arrItem[] [1,2, 3]type Person { name: Name
}type Student Person { grade: number } // 交叉类型type Teacher Person { major: string } type StudentAndTeacherList [Student, Teacher] // 元组类型const list:StudentAndTeacherList [{ name: lin, grade: 100 }, { name: liu, major: Chinese }
]interface Person {name: string
}
interface Person { // 重复声明 interface就合并了age: number
}
const person: Person {name: lin,age: 18
}type Person {name: string
}type Person { // Duplicate identifier Personage: number
}
5.vue的最佳实践
编码风格
命名组件时用多个单词避免跟现有及未来的 HTML 元素相冲突prop 属性定义应尽量详细至少要指定类型组件 data 必须是个函数避免多个组件数据互相影响使用 v-for 务必加上 key且避免和 v-if 写在一起为组件样式设置作用域使用 scoped 属性使用 BEM 约定私有 property 名使用 $_ 前缀避免产生冲突
最佳实践性能优化
1、组件按需加载
const Home () import(/components/home)
使用 import 动态导入配合 webpack tree-shaking 摇树功能没有用到的组件就不会打包到 chunk从而提升加载性能。
2、提升首屏加载速度
参考【Vue】从实际开发出发浅谈vue的最佳实践 - 掘金 (juejin.cn)
2.1、webpack体积优化
2.1.1、编译优化
1配置module.noParse比如 JQuery、Lodash 已经是可以直接运行在浏览器的文件就不必再搜索解析。告诉webpack不必解析某些文件。
2配置loader通过test、include、exclude缩小搜索范围例如
module.exports {//...module: {rules: [{test: /\.js$/,use: {loader: babel-loader,},include: [resolve(src)],exclude: /node_modules/,}]}
} 3解析loader开启多进程使用thread-loader只要把 thread-loader 放置在其他 loader 之前。
4合理利用缓存对性能开销较大的 loader启用缓存保存和读取这些缓存文件会有一些时间开销比如使用loader本身的缓存或使用cache-loader
2.1.2、代码压缩打包时间过久的优化方式
1terser-webpack-plugin 或uglifyjs-webpack-plugin压缩代码插件开启多进程并行、缓存模式
2.1.3、构建体积
bundle文件里包含了很多较大的第三方依赖包、业务代码js/css、以及图片资源等。配置externals防止将某些 import 的包(package)打包到 bundle 中而是在运行时(runtime)再去从外部获取这些扩展依赖(external dependencies)。
module.exports {//...externals: {vue: Vue,vuex: Vuex,vue-router: VueRouter,axios: axios,...},
};script srchttps://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js/script
script srchttps://cdn.bootcdn.net/ajax/libs/vuex/3.0.1/vuex.min.js/script
script srchttps://cdn.bootcdn.net/ajax/libs/vue-router/3.0.1/vue-router.min.js/script
script srchttps://cdn.bootcdn.net/ajax/libs/axios/0.19.0/axios.min.js/script2.2、可改造成SSR减少首屏加载时间
使用SSR服务端渲染将组件或是页面通过服务器生成html字符串再发送到浏览器这样可以加快首屏加载渲染的速度提前显示文档内容。
在服务器配置SSR项目中在激活模式下挂载应用我们应该使用 createSSRApp() 而不是 createApp()
3、不需要更新的内容静态化
可以将不需要更新的节点内容静态化这样可以优化更新性能。
4、尽量减少DOM层级嵌套
diff算法比较dom的性能消耗很大
5、不活动的组件可用keep-alive缓存
6、让传给子组件的 props 尽量保持稳定
只要需要修改的子组件的props会发生变化 7、大数据量的渲染优化
虚拟列表其实是按需显示的一种实现即只对可见区域进行渲染对非可见区域中的数据不渲染。实际上就是在首屏加载时只加载可视区域的列表项当滚动发生时动态计算获取可视区域内的列表项并将非可视区域的列表项删除。当滚动后由于渲染区域相对于可视区域已经发生了偏移此时我需要获取一个偏移量startOffset通过样式控制将渲染区域偏移至可视区域中。
参考「前端进阶」高性能渲染十万条数据(虚拟列表) - 掘金 (juejin.cn)
6、画一个平行四边形 .button {background-color: aqua;transform: skewX(-45deg);}.buttondiv {transform: skewX(45deg);
}div classbuttondivClick me/div/div
7、早期服务端渲染--客户端渲染--服务端渲染
参考一文带你入门SSR从传统服务端渲染到客户端渲染再到现代化的服务端渲染 - 掘金 (juejin.cn)
1.早期Web页面渲染都是在服务端完成的应用的前后端部分完全耦合在一起内容都是在服务端动态生成的所以服务端的压力较大
2.基于客户端渲染的 SPA 应用把【数据处理】和【页码渲染】分开也就是【后 端】负责数据处理【前端】负责页面渲染。因为 HTML 中没有内容等到 JavaScript 加载首屏渲染慢SEO 问题。
3.服务端渲染或同构渲染即【服务端渲染】 【客户端渲染】 8.图片懒加载 8、伪元数选择器
DNS会发生域名与ip的转化或发生IP与mac的转化吗
不受跨域限制的标签