前端面试之手写call,apply,bind
了解下this的指向 普通函数当中的this指向window 对象身上的方法指向这个对象 箭头函数的this执行上层作用域下的this 手写call12345678910111213141516171819202122Function.prototype.myCall = function(context,...arg){ context = context!== undefined && context !== null ? Object(context) : window; let callFn = this;//获取call let symbolTemp = Symbol('临时');//临时存储 context[symbolTemp] = callFn; let result = context[symbolTemp](...arg); delete context[symbolTemp];//用后删除 console.log(context[symbolTemp]);//undefine return result;} ...
前端文字实现拼音标注
示例地址 https://github.com/superBiuBiuMan/duyi_study 使用ruby标签 使用ruby标签进行标注 1234<ruby> 汉 <rt>hàn</rt></ruby> 当遇到不兼容此标签的时候,可以添加一个rp标签,正确情况下是不显示rp标签的 123456<ruby>汉 <rp>(</rp> <rt>hàn</rt> <rp>)</rp></ruby> 使用拼音库 https://pinyin.js.org/ https://www.npmjs.com/package/pinyin 安装 1npm install pinyin@alpha --save 使用看官网 示例 12import pinyin from "pinyin/lib/pinyin-web";pinyin('你') 效果
知乎日报项目前端+后端-React18 + React-Router6 + React-redux + reduxtoolkit
地址 前端:https://github.com/superBiuBiuMan/-zhuhu_daily 后端:https://github.com/superBiuBiuMan/zhihu-daily-admin 学习地址:Bilibili https://www.bilibili.com/video/BV1wx4y157Gu 介绍 技术栈使用React18 + React-Router6 + React-redux + redux/toolkit + craco(重写配置) + ( amfe-flexible + postcss-pxtorem 达到适配 ) + less keep-alive效果没实现,找了几个库效果都不理想,就没去弄了 运行前端运行 1.安装依赖(node什么的自行安装) 1yarn install 2.运行 1npm run start 后端运行 1.安装依赖(node什么的自行安装) 123yarn install或者npm install 2.运行 1node server.js 图片展示首页 详情页 ...
知乎日报项目学习笔记
项目完工 前端源码地址:https://github.com/superBiuBiuMan/-zhuhu_daily 后端源码地址:https://github.com/superBiuBiuMan/zhihu-daily-admin 学习地址:Bilibili https://www.bilibili.com/video/BV1wx4y157Gu 初始化项目ts方式(此项目以ts运行)1create-react-app zhihu-daily --template typescript 没有安装create-react-app的同学,请使用npx命令 1npx create-react-app zhihu-daily --template typescript js方式 删除后面的typescript即可 Rem响应式处理手动处理 我们制作移动端网页的时候,需要考虑兼容性,比如我们UI给出的原型图是以iPhone5/6或者其他手机尺寸为参考的,这里就设置设计稿的宽度为375px,同时为了方便计算,我们设置1rem = 100px 然后我们测量UI图的尺寸的时候,就* ...
微信小程序渐进式骨架屏的写法
前置 代码片段 @点我快速跳转 手动复制跳转:https://developers.weixin.qq.com/s/WOktHDm77mGj 知道hidden属性 为true显示,为false隐藏,类似于display:none 1234<view> <text hidden="{{true}}">我会被隐藏</text> <text hidden="{{false}}">我会被显示</text></view> 第一步:写好基本的html 写好的静态页面 分为三个部分,上,中,下 代码 wxml 1234567891011121314151617181920212223242526272829303132<view style="display: flex;flex-direction: column;height: 100vh;"> ...
Ubuntu系统安装基本Nginx和docker和一些其他的软件的基本操作
前言 系统使用Ubuntu20.4 华为云 安装nginx(如果需要NginxWebUI,就不这样子安装)12345#安装apt install nginx#查看版本nginx -v 安装Nginx Proxy Manager 官网https://nginxproxymanager.com/ docker-compuse部署 123456789101112version: '3.8'services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt 登录http://127.0.0.1:81 默认用户名和密码 12Em ...
React17+React Hook+TS4 最佳实践仿 Jira 企业级项目笔记
前言 个人笔记,记录个人过程,如有不对,敬请指出 React17+React Hook+TS4 最佳实践仿 Jira 企业级项目项目完成到第十章,剩下后面就没有看了,说的不是特别好 github地址:https://github.com/superBiuBiuMan/React-jira husky方便我们管理git hooks的工具 REST-API风格https://zhuanlan.zhihu.com/p/536437382 json-server 安装 1npm install -g json-server 项目安装 1npm install -D json-server 项目开始用jsx渲染开发工程列表 初始化代码出现问题,表单收集的组件无法将请求结果发送给list组件 1234567891011121314151617181920212223242526272829303132333435363738394041import React, { useEffect, useState } from "react" ...
vercel和netlify部署代码并解决接口代理转发的问题(和Nginx功能一样)
前言 部署过程就不说了,部署完成后是这样子的 然后访问链接,无法访问 解决 依次点击 Settings–>Domains,在输入框中输入你的域名并点击 Add 按钮。 以此域名为例子demo.gshopfront.dreamlove.top为例,点击添加 我们前往域名管理系统,记录下绿色的值以腾讯云的为例 上图中的Name对应的是主机记录,Value对应的是记录值,记录类型选择CNAME 验证成功,vercel自动生成ssl证书当中 访问成功 例子http://demo.gshopfront.dreamlove.top/ vercel解决接口代理问题 编译为静态文件后,代理转发没有了,跨域了,所以我们需要自己配置下代理转发给vercel使用 一模一样添加完成https://segmentfault.com/a/1190000042276351?sort=newest 安装开发依赖 1npm i -D http-proxy-middleware 目录建立vercel.json,注释记得删除 123456789//注释记得 ...
Vant组件当中van-list的使用在自定义列表当中
起因 vant官网没有提及自定义列表当中的使用,并且只有一些简单的例子,这里记录下我使用vant-list的记录代码 需求和使用 需求 下拉滚动加载,当快要触底的时候,加载下一页数据(这里不考虑上拉刷新和搜索列表数据) 使用 给vant-list设置一个固定或者自适应flex:1的高度,并设置overflow:scroll即可正常使用 演示地址和git地址 演示:https://codesandbox.io/p/github/superBiuBiuMan/vant_list_study/main?file=%2FREADME.md git:https://github.com/superBiuBiuMan/vant_list_study 演示图
pinia的基本创建和统一创建和解构失去响应式解决办法等知识点
在线代码演示 https://stackblitz.com/github/superBiuBiuMan/pinia_registerWay 使用注意点不能直接结构赋值 如果直接结构赋值,就像下面一样,就会失去响应式效果(数据变了,视图依旧不会更新) 12345<template> {{ name }}</template>const { name } = useCounterStore(); 如果确实需要解构赋值,可以使用storeToRefs https://pinia.vuejs.org/zh/core-concepts/index.html#using-the-store 1234567891011121314151617181920// 官网示例代码import { storeToRefs } from 'pinia'export default defineComponent({ setup() { const ...