1.vue的使用时间
1个月
2.小程序的使用时间?小程序的数据绑定和vue双向绑定的区别
1个月
vue自带v-model属性双向绑定,值发生变化数据和视图都会改变
小程序的数据绑定使用Mustache方法 value="{{value}}"是单向绑定
两者间的区别是小程序在元素上发生数据变化绑定的数据不会改变没有双向绑定属性但是可以手动增加,vue双向绑定数据一方发生变化另一方会同步更新
3.v-model双向绑定原理
首先:value="value"绑定值,再在元素上面添加:input监听事件监听input发生的变化再用e.target.value
获取value在通过this.value赋值
4.小程序实现双向绑定
首先使用Mustache绑定value在dom添加bindinput事件监听input发生的变化通过e.detail.value获取值用
this.setData({value})改变data里面的数据。
5.vue的优点
1.简单易学
2.双向数据绑定
3.组件化
Vue.js通过组件,把一个单页应用中的各种模块拆分到一个一个单独的组件(component)中,我们只要先在父级应用中写好各种组件标签(占坑),并且在组件标签中写好要传入组件的参数(就像给函数传入参数一样,这个参数叫做组件的属性)
4.视图,数据,结构分离使数据的更改更为简单,不需要进行逻辑代码的修改,只需要操作数据就能完成相关操作
6.vue和jq的区别
jq在修改或者赋值需要先获取$('div')元素然后在$('div').val()进行赋值,数据和界面没有分离
vue做到了数据和界面的完全分离,不需要获取dom就可以完成界面数据的更新
7.vue单页面和多页面的了解
单页面应用(spa)
概念:只有一个html页面,所有跳转方式都是通过组件切换完成的。
优点:页面之间跳转流畅、组件化开发、组件可复用、开发便捷、易维护。
缺点:首屏加载较慢,加载整个项目中使用的css、js,SEO优化不好。
多页面应用(mpa)
概念:整个项目有多个html,所有跳转方式都是通过href进行页面之间相互跳转的。
优点:首屏加载较快,只加载本页所使用的的css、js,SEO优化较好。
缺点:页面跳转较慢。
8.v-if和v-for,他俩的优先级谁高
v-if是否创建dom
v-for在dom进行遍历
v-for 的优先级比 v-if 更高
9.vue闪屏和加载慢
1.路由懒加载
2.开启gzip压缩
3.v-if和v-show的选择
10.vue路由懒加载
懒加载也叫延迟加载,即在需要的时候进行加载,随用随载。在单页应用中,如果没有应用懒加载,运用webpack
打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,延时过长,不利于用户体验,而运用懒加载
则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时。
11.uni-app是否接触过
否
12.v-if和v-show
1.v-if是通过控制dom节点的存在与否来控制元素的显隐;v-show是通过设置DOM元素的display样式,block为显示,none为隐藏;
2.v-if判断是否加载,可以减轻服务器的压力,在需要时加载,但有更高的切换开销;v-show调整DOM元素的CSS的dispaly属性,可以使客户端操作更加流畅,但有更高的初始渲染开销。如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
13.vue生命周期
创建 挂载 更新 销毁
14.Element内置样式的修改
1.给当前元素加上id,class进行样式覆盖修改
2.给样式加!important来补,但是慎用,对于性能很不友好
3.找到元素的class名进行样式的覆盖
15.对于原型和原型链的理解
数据共享 节约内存内存空间
例子1:
function Person(name) {
this.name=name;
this.eat=function () {
console.log(this.name+"吃东西");
}
this.sleep=function () {
console.log(this.name+"睡觉");
}
}
var p1=new Person("小明");
p1.eat();//小明吃东西
p1.sleep();//小明睡觉
var p2=new Person("小利");
p2.eat();//小利吃东西
p2.sleep();//小利睡觉
console.dir(p1);//dir()打印结构
console.dir(p2);
每次使用构造函数Person()实例化出对象的时候,就会给每个实例对象的eat()方法和sleep()方法开辟空间。
可是当实例化许多对象的时候,就会浪费大量的空间,因为每个实例对象的eat()方法和sleep()的功能都是一样
的,所以我们没必要为每个实例对象添加eat()方法和sleep()方法。
例子2
function Person(name) {
this.name=name;
}
Person.prototype.eat=function () {
console.log(this.name+"吃东西");
};
Person.prototype.sleep=function () {
console.log(this.name+"睡觉");
}
var p1=new Person("小明");
p1.eat();//小明吃东西
p1.sleep();//小明睡觉
var p2=new Person("小利");
p2.eat();//小利吃东西
p2.sleep();//小利睡觉
console.dir(p1);
console.dir(p2);
new的时候不会再创建内存空间给eat和sleep,因为eat和sleep方法是挂载到prototype上的实现了方法的共享
从而降低了内存的消耗。
实例对象和构造函数之间没用直接的关系。原型对象与实例对象之间用原型(__proto__)关联,这种关系叫做原型链。
16.Let、const、var的区别
const是ES6提出的声明的是常量,必须赋值,有块级作用域
Let是ES6提出的声明的是变量,不可以重复声明,有块级作用域
var是ES5提出是变量,没有块级作用域,可以重复声明
17.外部函数如何访问内部变量
1.通过return访问
function bar(value) {
var testValue = 'inner';
return testValue + value;
}
console.log(bar('fun')); // "innerfun"
2.通过 闭包 访问函数内部变量
function bar(value) {
let testValue = 'inner';
let rusult = testValue + value;
function innser() {
return rusult;
};
return innser();
}
console.log(bar('fun')); // "innerfun"
18.封装函数,组件需要注意什么,或者说曾经封装过哪些函数、组件
1.数据从父组件传入
2.父组件中处理事件
处理事件的方法尽量写在父组件中,以保证通用组件中的数据不被污染。
3.可复用的模块
19.This的理解,箭头函数和普通函数的区别
1.默认情况下,指向全局,浏览器的话就是指向window
2.new 指向这个新对象。
3.箭头函数的 this 永远指向其上下文的 this
4.普通函数的this指向调用它的那个对象
5.箭头函数是匿名函数,不能作为构造函数,不能使用new
6.箭头函数没有arguments
20.ES6方法列举
let, const,of ,箭头函数,promise
21.Vue组件传值,路由传值,VueX
1.props,on,emit,callback
2.push(`/describe/${id}`)
.push({
`/user`,
{id}
})
path: '/user/:id',
3. VueX是适用于在Vue项目开发时使用的共享状态管理工具。VueX为我们解决了组件之间同步状态的问题我们在
组件间都是用props的话不方便后期的修改和维护工作,这时VueX就可以帮我们解决这些问题。
22.虚拟dom
虚拟dom就是用js对象模拟真实的dom节点,也就是将所有的更新dom的操作先全部反映在js对象上(虚拟dom上),
操作内存中的js对象显然速度要快很多,等更新完成后,再将最终的js对象映射到真是的dom上,交由浏览器去绘制
页面。
23.Rem,vm,vw,vh,%,px,upx,rpx,单位的理解
% 对于父节点的百分比
px像素
rpx小程序自适应屏幕
24.css常用的布局方式
flex,float,absolute,display
25.对于值传递和引用传递的理解
一句话总结两者的区别,传值的时候发生的改变时不会影响其他模板中调用的该值的,传引用则会改变:
值传递:基本类型--名值存储在栈内存中,例如let a=1,当你b=a复制时,栈内存会新开辟一个内存
引用传递:引用数据类型--名存在栈内存中,值存在于堆内存中,但是栈内存会提供一个引用的地址指向堆内存中
的值
第二天面试了,今天笔试通过了和面试官也聊了一些技术方面的事儿也有很多问题没有答出来,总体来说要比昨天强一些。
办公环境:优秀
路程:开车30分钟
很好的开发环境可惜我应该是去不了了!!!!!!