对 vue 的补充

101 阅读2分钟

1、十大新特征:双向绑定机制;组件化开发;插件机制;虚拟 DOM 机制;指令系统(给元素或者组件绑定一个自定义属性);单文件组件(允许把 JS、HTML、CSS 写在一个文件里面)

2、vue采用的是组件式编程,那么组件必须复用,所以采用的设计模式是:多例模式。如果data是一个对象,它属于引用数据类型,那么要做到不同实例的data不同,所以每次调用createApp里面的data必须返回一个新的数据对象,所以data必须是一个工厂函数。

3、自适应和响应式(弹性盒flex)

4、link 和 @import 的区别

5、响应式布局:是一种网页设计的方法,它能够使网站在不同的设备上,比如电脑桌面、平板电脑、手机端等等都能够以最佳的方式展示。响应式布局:语法:媒体查询(@media) min-width max-width
媒体查询:根据不同分辨率可以适配所有设备。缺点:代码繁琐,代码冗余。注意:如果需要设置媒体查询,那么设备后面and和分辨率直接必须有空格。
语法: @media all and (min-width){选择器和样式}
栅格系统:在不同的分辨率下展示不同的形态,实现原理使用 @media width 来实现

6、不推荐使用 form 表单。因为会自动上传cookie,会引起 XSS 攻击。

7、模板字符串: ${变量}(反引号)

8、v-model的原理:通过 input 输入框的 value 属性绑定数据,通过 input 事件修改数据

9、v-model 的三个修饰符:lazy(失去焦点再收集数据)、number(输入字符串转为有效的数字)、trim(输入首尾空格过滤)

10、v-html指令的应用:一般是新闻模块

11、for in 和 for of 的区别
I、for-in 循环迭代对象的是键名,而 for-of 循环迭代对象的是值。
II、for-in 循环适用于遍历对象,包括普通对象、数组、函数等,而 for-of 循环适用于遍历可迭代对象,包括数组、字符串、Map、Set、TypedArray 等。
III、for-in 循环的迭代顺序是不确定的,因为对象的属性没有固定的顺序。而 for-of 循环的迭代顺序是确定的,因为可迭代对象的值是按照一定顺序排列的。
IV:for-in 循环遍历对象时,会遍历对象的原型链,并且会包含从原型链继承的属性。而 for-of 循环遍历的对象是可迭代对象,它们的值是可枚举的。

12、生成长度为10的数组

<script>
    const arr1 = Array(10).fill().map((item, index) => ({
            id: 'id-0' + index,
            title: '昨天的bug修改',
            type: Math.random() > 0.5 ? '紧急' : '一般',
            handler: '章三',
            date: '2023-09-09',
            state: ['新建', '处理中', '完成']
        }))
        console.log(arr1);
</script>
// 生成数组长度为10,值为empty
const a1 = new Array(10)

13、虚拟dom是由h函数创建的一个普通 js 对象,js对象描述真实dom的结构。渲染虚拟 dom 到页面,可以在render中返回虚拟 dom 即可。

14、js中 foreach 和 map 的区别

// 定义一个数组 
let arr = [1,2,3,4,4,323,3214,666]

// forEach
arr.forEach((item,index,arr) => {
    console.log(item,index)
})

// map
let res = arr.map((item,index,arr) => {
    return item*10
})
console.log(res);

image.png

15、父子组件生命周期执行顺序:先执行父组件的前三个(beforeCreate\created\beforemount),再执行子的前四个(beforeCreate\created\beforemount\mounted)
生命周期都是同步的,发送请求是异步的。先执行同步代码,最后执行异步代码

16、在created中如何获取DOM:获取dom代码只要是在异步代码中就可以获取了(定时器、发送请求、也可以使用$nextTick)

17、beforeCreate:开始准备数据和虚拟dom创建
created:数据绑定和虚拟dom创建完成,非异步赋值不会二次渲染

18、props(父传子):父子组件传值,在父组件中使用子组件,在子组件的标签上面传值,如果传递的是字符串,可以直接书写;如果传入的是非字符串,需要使用绑定语法(v-bind)