编程语言
首页 > 编程语言> > 前端通关手册 javascript

前端通关手册 javascript

作者:互联网

View / MVVM 框架

如何实现一个组件,前端组件的设计原则是什么?

对比 React 、Angular 和 Vue

该问题 Vue 官方在 《对比其他框架》 中作过说明,整理如下:

 

渲染优化

https://www.zhihu.com/question/301860721

https://www.zhihu.com/question/66749082/answer/246217812

HTML 和 CSS

CSS 作用域

 

 

规模、向上扩展:
React:

Vue:

向下拓展

原生渲染

MobX

Vue 和 React 实现复用

这个方面我觉得也没有复述的必要,因为在实现复用的道路上,Vue 和 React 都是经历了:Mixin -> Hoc(Vue 比较少用,模版套模版,有点奇怪了)-> render prop(Vue 有类似思想的实现为 slot) -> hooks(Vue3.0 function based API)在这方面,UI 层面的复用本身不是问题:因为组件化本身就是天然可组合的。重要的是逻辑复用:hooks 和 Vue3.0 function based API 的设计无疑是最先进的,它将逻辑复用和组件表达在一定程度上解耦,避免了“面向生命周期编程”的困扰。顺便达到了更好的组合性和 TS 友好性。

VUE

computed 与 watch 的区别?

https://www.cnblogs.com/sunflower-js/p/15786074.html

computed

watch

Vue.nextTick 原理和作用?

Vue3.x 的新特性

API 风格

组件生命周期

Vue2.x:

Vue3.x:

指令生命周期

Vue2.x:

Vue3.x:

数据

监听

slot

v-model

新功能

性能

React

React 中有哪几种类型的组件,如何选择?

无状态组件

有状态组件

容器组件

高阶组件

回调组件

对比 React 和 Vue 的 diff 算法?

相同点

不同点

节点类型

React 中使用 useEffect 如何清除副作用?

在 useEffect 中返回一个清除函数,名称随意,可以是匿名函数或箭头函数,在清除函数中添加 处理副作用的逻辑,如移除订阅等
查看代码
function component(props) {
	function handleStatusChange(status) { console.log(status.isOnine) }
	useEffect(() => {
		API.subscribe(props.id, handleStatusChange))
	}
	return function cleanup() {
		API.unsubscribe(props.id, handleStatusChange)
	}
}

javaScript

Es3 

常见的类型转换

a = ?, a==1 && a==2 && a==3 成立

== 会触发隐式转换,=== 不会对象转字符串: 先toString(), 再valueOf()
对象转数字: 先valueOf() 或者 toString() + valueOf()
对象转布尔, True
数组转对象: 符合对象规律,不过toString()里面会调用join()方法
可以直接在定义处重写方法

 对比 get 和 Object.defineProperty

查看代码
class TestGet {
    #name;
    constructor (name) {
        this.#name = name;
    }

    get name () {
        return 'njvnj';
    }
}

const a = new TestGet('jkl');

const test = Object.create({});
Object.defineProperty(test, 'name', {
    get: () => {
        return this.name;
    },
    set: (name) => {
        this.name = name + ' word!';
    }
})
test.name = 'hello'
console.log(test.name);

对比 escape encodeURI 和 encodeURIComponent

escape
对字符串编码
ASCII 字母、数字 @ * / + - _ . 之外的字符都被编码

encodeURI
对 URL 编码
ASCII 字母、数字 @ * / + 和 ~ ! # $ & () =, ; ?- _ . '之外的字符都被编码

encodeURIComponent
对 URL 编码
ASCII 字母、数字 ~ ! * ( ) - _ . ' 之外的字符都被编码

标签:Vue,name,渲染,javascript,支持,手册,React,组件,通关
来源: https://www.cnblogs.com/sunflower-js/p/15796072.html