如何解决跨域
利用vue解决跨域在vue.config.js中配置如下信息123456789101112131415 devServer: { proxy: { '/api': { //需要发起请求的地址 target: 'http://v.juhe.cn/toutiao/index', // 服务器地址 pathRewrite: { '^/api': '' }, changeOrigin: true, // 本地会虚拟一个服务端接收你的请求并代你发送该请求 secure: false // 当代理某些 https 服务时用 } } }//注意:api为本地地址,为解决跨域问题,这里是将api(http://127.0.0.1:8080)替换为target地址(http://v.juhe.cn/tout ...
常用正则表达式
正则表达式一、创建正则表达式方式112正则表达式字面量被包围在一对斜杠中let re1 = /ABC\-001/;
方式2123通过new RegExp('正则表达式')创建一个RegExp对象const re2 = new RegExp('ABC\\-001');console.log(re1) // /ABC\-001/
二、正则表达式标识123g 全局的 (匹配多次)i 大小写不敏感(忽略字符大小写)m 多行(^和$能匹配行结束符)
三、正则表达式字符123456789101112131415\d 等同于[0-9],匹配一个数字\w 等同于[0-9A-Z_a-z]可以匹配一个字母或数字. 可以匹配任意字符* 表示任意个字符(包括0个)+ 表示至少一个字符? 表示0个或1个字符{n} 表示n个字符 如:\d{3}表示匹配3个数字,例如'010'{n,m} 表示n-m个字符^表示行的开头,^\d表示必须以数字开头$表示行的结束,\d$表示必须以数字结束。\反斜 ...
面试题-Vue
Vue 面试题最全的 Vue 面试题+详解答案
单页应用(SPA)的原理与优缺点?缺点:
不利于 SEO 的优化
第一次加载首页耗时相对长一些;
不可以使用浏览器的导航按钮需要自行实现前进、后退。
MVVM 框架设计理念,与 MVC 的区别?MVC 是 Model-View- Controller 的简写。即模型(model) - 视图(view) - 控制器(controller)。MVC 是单向通信。也就是 view 跟 model,必须通过 controller 来承上启下。
Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据
View(视图):是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的
Controller(控制器):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVVM 是 Model-View-ViewModel 的简写,即模型 - 视图 - 视图模型。在 MVVM 的框架下视图和模型是不能直接通信的。它们通过 ViewModel 来通信,Vie ...
面试题-书写代码
手写 instanceof最全的手写JS面试题
判断一个实例是否是其父类或者祖先类型的实例。
123456789101112let myInstanceof = (target,origin) => { while(target) { if(target.__proto__===origin.prototype) { return true } target = target.__proto__ } return false}let a = [1,2,3]console.log(myInstanceof(a,Array)); // trueconsole.log(myInstanceof(a,Object)); // true
实现数组的 map 方法123456789Array.prototype.myMap = function(fn, thisValue) { let res = [] thisValue = ...
gate io login
服务器端讲讲输入完网址按下回车,到看到网页这个过程中发生了什么
查询NDS(域名解析),获取域名对应的IP地址 查询浏览器缓存
浏览器与服务器建立tcp链接(三次握手)
浏览器向服务器发送http请求(请求和传输数据)
服务器接受到这个请求后,根据路经参数,经过后端的一些处理生成html代码返回给浏览器
浏览器拿到完整的html页面代码开始解析和渲染,如果遇到外部的css或者js,图片一样的步骤
浏览器根据拿到的资源对页面进行渲染,把一个完整的页面呈现出来
TCP三次握手客服端发c起请求连接服务器端s确认,服务器端也发起连接确认客服端确认。
第一次握手:客服端发送一个请求连接,服务器端只能确认自己可以接受客服端发送的报文段
第二次握手: 服务端向客服端发送一个链接,确认客服端收到自己发送的报文段
第三次握手: 服务器端确认客服端收到了自己发送的报文段
你了解的 http 状态码
2XX(成功处理了请求状态)
3XX(每次请求使用的重定向不要超过5次)
4XX(表示请求可能出错,妨碍了服务器的处理)
5XX(表示服务器在处理请求的时候发生内部错误)
你知道 http 与 https ...
React的Context
Context
context
Context 提供了一个无需为每层组件手动添加 props,就能在组件树间进行数据传递的方法。
创建 Context 对象
1const MyContext = React.createContext(defaultValue);//defaultValue 初始值,但是一般会被覆盖
Provider 组件
Context 对象中包含一个属性,该属性是 Provider,他是一个组件,该组件必须挂载在最外层,通过 value 属性向下传递数据,然后所有的子组件通过一定的方式就能获取数据。
1<MyContext.Provider value={}></MyContext.Provider>
useContext
接收一个 context 对象(React.createContext 的返回值)并返回该 context 的当前值。
插槽
默认插槽
在组件之间嵌套的任意内容都放在 props.children 中了。
123456789export default function MyPr ...
React-router路由
react-router路由
react-router
路由使用
**第一步、安装路由模块**
1npm install react-router-dom@6
**第二步、引入并挂载**
12345678910import React from 'react'import ReactDOM from 'react-dom/client'import { BrowserRouter } from 'react-router-dom'import App from './App'ReactDOM.createRoot(document.getElementById('root')).render( <BrowserRouter> <App /> </BrowserRouter>)
**第三步、配置路由**
1234567import { Routes, Route } from 'react ...
Redux
Redux
相关介绍
react 数据通信
* props
* 事件回调
* context 对象
* context + useReducer(createContext, useContext, ueReducer)
* 状态管理工具(Mobx, Redux)
什么是 redux?
是属于 JS 的状态容器,可以提供能预测的状态管理。可以结合任意的框架使用。
redux + react 的实现方式
>> class 组件 + redux + react-redux
>> 函数组件 + redux + react-redux
>> 函数组件 + redux toolkit + react-redux
环境搭建
>> 新项目
12npx create-react-app my-app --template reduxnpx create-react-app my-app --template redux-typescript
>> 老项目添加
1npm i redux react ...
React的组件通信
组件通信
React 开发环境
create react app(官方脚手架)
# 安装
npx create-react-app 项目名字
# 如果要支持 sass,则直接安装 sass 模块后,重新启动服务即可
npm i sass
vite
123456789# npm 6.xnpm create vite@latest my-react-app --template react# npm 7+, extra double-dash is needed:npm create vite@latest my-react-app -- --template react# tsnpm create vite@latest my-react-app -- --template react-ts
组件
组件概念
* 容器组件:一般用于处理逻辑、以及数据管理。
* UI组件:直接用于展示的。
组件的创建
>> class 组件
>> 函数组件
class 组件的定义
123456789import React from 'rea ...
字符串
字符串1. String
String属性
1str.length
String方法
charAt(index) 返回指定位置的字符,index从开始。
1str.charAt(1);
substring(n,m) 截取字符串,返回指定区间的字符。包含n,不包含m
12var res=str.substring(1,3);var res=str.substring(1);//没有指定结束,则后面的全部取完
substr(n,length) 截取字符串,从n开始,截取指定长度的字符串
12var res=str.substr(1,2);str.substr(1);
indexOf(str,n) 返回指定字符在字符串中首次出现的位置,如果没有找到则返回-1,如果添加第二个参数,则表示从n之后开始寻找。
1var res=str.indexOf('b',2);
match(str) 查找字符串中特定的字符,如果找到则返回这个字符串,如果没有找到就返回 null。
1var res=str.match('b');
s ...