一、深拷贝、浅拷贝
1、什么是对象的引用赋值?
-
js 中对象都是引用类型的
2、什么是浅拷贝?
-
Object.assign({}, this.person);
就是浅拷贝,只进行第一层的拷贝 - 如果下图中的 person 里面有个 friend 对象,friend 对象不会被拷贝
3、什么是深拷贝?
- 这种拷贝不能拷贝
undefined、function、rRegExp
等数据 - 推荐使用
loadash 库
二、v-model
1、v-model 的基本使用场景?
- 大多用于与用户交互的表单场景
2、如果没有 v-model,我们如何保持 text 和 input 里面的 message 响应式呢?
- 通过下面的代码,我们更能深刻理解到为什么 v-model 会被称为双向绑定。
<body>
<div id="app">
</div>
<template id="my-app">
<input type="text" :value="message" @input="inputChange" ></input>
<label>{{message}}</label>
</template>
<script src="../js/vue.js"></script>
<script>
Vue.createApp({
template: '#my-app',
data: function() {
return {
message: "Hello World",
}
},
// 定义各种各样的方法
methods: {
inputChange(event) {
this.message = event.target.value;
}
}
}).mount('#app');
</script>
</body>
3、v-model 通过上面的例子,我们知道了本质是什么?
- v-model 的本质,就是上面【问题2】手写代码的【语法糖】
-
换句话说 v-model 是 【v-bind 和 v-on 的语法糖】
4、v-model 和其他 html 标签的绑定效果(用到了再来查询吧)?
5、v-model 还可以跟一些修饰符(用到了再来查询吧)?
6、v-model 的源码解读(目前了解即可,比较复杂)?
三、组件开篇
1、人处理信息的逻辑能力是有限的,那么遇到超级大问题会怎么办呢?
- 会把一个大问题拆解成多个小问题
- 把小问题都解决了,大问题也就迎刃而解了
2、组件化开发的核心思想?
3、组件化开发在大前端的地位?
4、怎么理解 vue 中的组件?
- 前面我们的 createApp 函数传入了一个
对象 App
,这个对象其实本质上就是一个组件
,也是我们应用程序的根组件
四、vue 的组件化
1、什么是全局组件?如何注册一个全局组件?
- 全局组件:意味着注册的这个组件可以在任何组件模板中使用
2、注册组件的两种方式?
3、组件的两种命名规范(了解)?
4、【全局组件】的优缺点?局部组件的优缺点?
5、如何注册局部组件?
四、构建工具
1、为什么需要有构建工具?
- 在 vue 开发中,我们通常会把模板抽离到
一个 .vue 的文件
中 - 但是浏览器不认识也不能解析 .vue 文件,那么怎么办?这就需要
构建工具
来解析了 - 常见的构建工具有 【webpack】【vite】