面试2

  1. 对MVVM的理解

MVVM是Model-View-ViewModel的缩写。 它借鉴了桌面应用程序的MVC思想,在前端页面中,把Model用纯JavaScript对象表示,View负责显示,两者做到了最大限度的分离。把Model和View关联起来的就是ViewModel。ViewModel负责把Model的数据同步到View显示出来,还负责把View的修改同步回Model。

  1. 数据双向绑定原理

所谓的双向绑定,就是view的变化能反映到ViewModel上,ViewModel的变化能同步到view上。
vue.js采用数据劫持结合发布者-订阅者的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时,发布消息给订阅者,触发相应的监听回调。
Vue.js通过Directives指令去对DOM做封装,当数据发生变化,会通知指令去修改对应的DOM,数据驱动DOM的变化。vue.js还会对操作做一些监听(DOM Listener),当我们修改视图的时候,vue.js监听到这些变化,从而改变数据。这样就形成了数据的双向绑定。

  1. vue.config.js 配置文件常用配置项
devServer :{
 port:端口号
 https:是否开启https协议
 proxy:{//代理
	 "/api" : {
			target: " http://localhost:3000 ",   //代理地址
			changeOrigin: true,           // 是否跨域
			ws:  true,
			pathRewrite: {
			" ^/api " :  ""  //若请求的路径在目标url下但不在/api 下,则将其转换成空
			}    
		}
	 }
}
publicPath:"/aaa"  //部署后的基础路径
outputDir: process.env.outputDir, 
assetsDir: 'static', //  outputDir的静态资源(js、css、img、fonts)目录
chainWebpack:配置链
css :css loder特殊插件配置
configureWebpack:webpack配置

	 
  1. 常用数据类型header的配置项

headers:{
//json提交 传递的是一个长字符串
‘Content-Type’: ‘application/json;charset=UTF-8’
//文件提交 传递的是文件流
‘Content-Type’: multipart/form-data;boundary=something’
//表单提交 传递的是键值对
‘Content-Type’: application/x-www-form-urlencoded’
}

  1. 浏览器请求回来后的页面渲染过程

  2. 路由的两种模式及区别

history模式和hash模式
history没有#号需要后端配置基础路由地址
hash模式包含#

  1. ajax的概念及优势,ajax基于什么实现

ajax=异步的js和xml 能通过后台和服务器进行少量数据交换,在不重新加载页面的情况下实现部分网页异步更新
ajax基于现有的internet标准,并且联合使用他们
1、XMLHttpRequest对象
2、javascrip/DOM
3、css
4、xml
ajax状态码
readyState 0(请求未初始化)、1(服务器连接已建立)、2(请求已接收) 、3(请求处理中)、4(请求已完成且响应已就绪)
status 200(‘ok’)、404(未找到页面)
ajax实现流程

function loadXMLDoc()
{
	var xmlhttp;//创建ajax请求
	if (window.XMLHttpRequest)
	{
		//  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
		xmlhttp=new XMLHttpRequest();
	}
	else
	{
		// IE6, IE5 浏览器执行代码
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	//ajax请求状态码发生变化时的回调函数
	xmlhttp.onreadystatechange=function()
	{
		//请求成功后的DOM处理
		if (xmlhttp.readyState==4 && xmlhttp.status==200)
		{
			//xmlhttp.responseText为ajax响应数据
			document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
		}
	}
	//发送请求
	xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
	xmlhttp.send();
}
  1. 跨域的后台解决办法配置

浏览器支持 cors
@CrossOrigin(origins = “http://localhost:8080”)
浏览器不支持cors
response.setHeader(“Access-Control-Allow-Origin”, “*”);

  1. http协议的优势

http是超文本传输协议的简称。规范了浏览器和服务器交互数据的格式
http协议的特点
1 、简单快捷:客户向服务器请求服务时只需要传路径和请求方法,不同的请求方法规定了客户端与服务端联系的不同类型,由于http协议简单,因而服务端程序 规模小,因此速度就很快
2、灵活 http可以传递任意类型的数据对象 用content-type来标记传输类型
3 、无连接 限制每次链接只能处理一个请求,请求处理完并接收到客户端应答后立即断开,因此节省了传输时间
4、无状态,为无状态协议 对事务处理没有记忆能力,服务器不需要先前信息时处理较快,反之需要重新连接就会耗费时间,在1.1版本后支持可持续性连接
http交互流程
1、客户端与服务器建立连接
2、客户端向服务器发送数据请求
3、服务器将接收到的数据处理后的结果相应给客户端
4、客户端和服务端连结关闭
客户端请求消息格式
请求行、请求头、空行、请求数据
服务端响应头
状态行、消息报头 空行 、响应正文

10.axios概念及基本配置项
axios 基于promise用于浏览器和node.js的http客户端。
基本配置项
url: ‘/index’,
headers: {‘Content-Type’: ‘application/text;charset=UTF-8’},
emulateJSON: true, //启用该选项后,请求会以application/x-www-form-urlencoded作为Content-Type
method: ‘get’,
params:data
或者使用qs配置表单请求体
先安装qs
npm install qs --save
引入Qs
import Qs from ‘qs’
配置
url: ‘/index’,
headers: {‘Content-Type’: ‘application/text;charset=UTF-8’},
emulateJSON: true, //启用该选项后,请求会以application/x-www-form-urlencoded作为Content-Type
method: ‘get’,
data:Qs.stringify(data)
11、ajax axios fetch的区别

1、ajax Ajax即“Asynchronous Javascript And XML”(异步 JavaScript 和
XML),是指一种创建交互式网页应用的网页开发技术。通过http进行通信 构建复杂、安全性低容易收到csrf和xss攻击,会有网络延迟
且无法显示服务器响应的其它信息 2、axios axios基于promise用于浏览器和node.js的http客户端
支持异步和防御CSRF/XSRF,安全快速,提供了一些并发请求接口,支持拦截请求和响应同时自动转化json 3、fethch
基于promise设计的,类似jquery ajax ,未使用xmlHttpRequest对象
写法方便、API也比较丰富更加底层,脱离了XHR但还有很多问题,只对网络请求报错,默认不带cookie,不能拦截请求,也无法检测请求进度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值