avatar
文章
90
标签
16
分类
11

主页
博文
  • 分类
  • 标签
  • 归档
留言板
link
about
CJJJX's BLOG
搜索
主页
博文
  • 分类
  • 标签
  • 归档
留言板
link
about

CJJJX's BLOG

面试如何回答JSON.stringify的使用场景
发表于2023-09-17|前端知识
当面试被问到JSON.stringify 的作用意义该如何回答呢。网上查到的八股文答案基本都这样回答: 1JSON.stringify(value,replacer,space) 它是一个用于序列化对象的方法,接受三个参数,第一个参数是要被序列化的对象,接受对象或数组类型。第二个参数用于标记需要序列化的属性,接受数组和函数类型。第三个参数用于描述序列化后的缩进字符数,用于美化格式。当然这样的回答也没有错,不过面试考察的更多是我们的实际应用能力以及实战场景,如果只回答八股文的内容,更多的只能体现背诵能力,所以今天整理了 JSON.stringify 的实际应用场景。 场景一:localStorage 的存储前端 localStorage 中只能接受字符串的存储类型,而且它是一个 KV 的结构,我们尝试模拟存储一个对象这种场景: 我们会发现是存储失败的,我们没有办法把整个 obj 存储到 localStorage 中,所以在这种场景下,我们就需要用到 JSON.stringify,把对象先序列化再进行存储: 我们发现这样是可以存储成功的,我们只需要把存进去的对象再进行一次 JSON. ...
vue3插槽slot用法汇总
发表于2023-09-14|前端知识
Vue中的插槽相信使用过Vue的小伙伴或多或少的都用过,但是你是否了解它全部用法呢?本篇文章整理总结了Vue3中插槽的全部用法用于查漏补缺。 什么是插槽简单来说就是子组件中的提供给父组件使用的一个坑位,用<slot></slot> 表示,父组件可以在这个坑位中填充任何模板代码然后子组件中<slot></slot>就会被替换成这些内容。比如一个最简单插槽例子 123456789101112131415161718//父组件<template> <div> <Child>Hello Juejin</Child> </div></template><script setup lang="ts">import Child from './Child.vue'</script>//子组件Child<template> <div> <p>1</p ...
vue八股文1
发表于2023-09-11|前端知识
2023前端面试题整理一(Vue篇)简述 MVVM 框架Model: 代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑。 View: 代表 UI 组件,它负责将数据模型转化成 UI 展现出来。 ViewModel: 监听数据模型的改变和控制视图行为、处理用户交互,简单理解就是一个同步 View 和 Model 的对象,连接 Model 和 View。 vue2 和 vue3 区别1.写法上的区别:vue2 使用的是options(选项)Api,vue3 的是composition Api(当然 vue3 也兼容composition api)。options Api中methods,compute,data等 api 都是分散的。而composition api中的代码是根据逻辑功能来组织的,我们可以将一个功能所定义的methods,compute,data等 api 会放在一起,让我们可以更灵活地组合组件逻辑。 2.vue2 将响应式数据放到 data 函数中,而 vue3 则是使用ref和reactive将数据声明为响应式 3.响应式实现方式:vue2 中是通过O ...
vue3项目rem自适应大小如何实现
发表于2023-09-09|前端知识
rem自适应随着现在互联网设备的日益更新,各大尺寸的屏幕参差不穷 导致我们的布局在某些小屏或者大屏上与UI的表现并不一致 所以,很多人寻求各种解决方案,我们现在的很多移动端框架都是支持了的,包括小程序,很多都采用了rpx的方式,这里不去深究它们的实现方案。 像手机淘宝网,就是在根标签设置font-size,然后使用rem去设置尺寸大小,它们可能有更精细化的优化处理,这里就只实现普通的方法。 淘宝示例图如上 实现过程获取当前的设备宽度1const view_width = document.getElementsByTagName('html')[0].getBoundingClientRect().width; 计算rem的值123// 750 是设计稿的宽度 , 按设计稿调整// 乘以100 是为了具体宽度值书写不会太大const fontSize = fontSize = 100 * (view_width / 750) + 'px' 赋值到根标签12const _html = document.getElementsByTagName( ...
vue3-pinia
发表于2023-08-29|前端知识
Vue3 状态管理 - Pinia1. 什么是PiniaPinia 是 Vue 的专属的最新状态管理库 ,是 Vuex 状态管理工具的替代品 2. 手动添加Pinia到Vue项目后面在实际开发项目的时候,Pinia可以在项目创建时自动添加,现在我们初次学习,从零开始: 使用 Vite 创建一个空的 Vue3项目 1npm init vite@latest 按照官方文档安装 pinia 到项目中 3. Pinia基础使用 定义store 组件使用store 4. getters实现Pinia中的 getters 直接使用 computed函数 进行模拟, 组件中需要使用需要把 getters return出去 5. action异步实现方式:异步action函数的写法和组件中获取异步数据的写法完全一致 接口地址:http://geek.itheima.net/v1_0/channels 请求方式:get 请求参数:无 需求:在Pinia中获取频道列表数据并把数据渲染App组件的模板中 6. storeToRefs工具函数使用storeToRefs函数可以辅助保 ...
vue学习Day8
发表于2023-08-28|前端知识
认识Vue31. Vue2 选项式 API vs Vue3 组合式API1234567891011121314<script>export default { data(){ return { count:0 } }, methods:{ addCount(){ this.count++ } }}</script> 12345<script setup>import { ref } from 'vue'const count = ref(0)const addCount = ()=> count.value++</script> 特点: 代码量变少 分散式维护变成集中式维护 2. Vue3的优势 使用create-vue搭建Vue3项目1. 认识create-vue create-vue是Vue官方新的脚手架工具,底层切换到了 vite ...
vue学习Day7
发表于2023-08-18|前端知识
一、Vuex 概述目标:明确Vuex是什么,应用场景以及优势 1.是什么Vuex 是一个 Vue 的 状态管理工具,状态就是数据。 大白话:Vuex 是一个插件,可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。例如:购物车数据 个人信息数 2.使用场景 某个状态 在 很多个组件 来使用 (个人信息) 多个组件 共同维护 一份数据 (购物车) 3.优势 共同维护一份数据,数据集中化管理 响应式变化 操作简洁 (vuex提供了一些辅助函数) 4.注意:官方原文: 不是所有的场景都适用于vuex,只有在必要的时候才使用vuex 使用了vuex之后,会附加更多的框架中的概念进来,增加了项目的复杂度 (数据的操作更便捷,数据的流动更清晰) Vuex就像《近视眼镜》, 你自然会知道什么时候需要用它~ 二、需求: 多组件共享数据目标:基于脚手架创建项目,构建 vuex 多组件数据共享环境 效果是三个组件共享一份数据: 任意一个组件都可以修改数据 三个组件的数据是同步的 1.创建项目1vue create vuex-demo 2.创建三个组件, 目录如下1234 ...
vue学习Day6
发表于2023-08-13|前端知识
一、声明式导航-导航链接1.需求实现导航高亮效果 如果使用a标签进行跳转的话,需要给当前跳转的导航加样式,同时要移除上一个a标签的样式,太麻烦!!! 2.解决方案vue-router 提供了一个全局组件 router-link (取代 a 标签) 能跳转,配置 to 属性指定路径(必须) 。本质还是 a 标签 ,to 无需 # 能高亮,默认就会提供高亮类名,可以直接设置高亮样式 语法: 发现音乐 1234567891011<div> <div class="footer_wrap"> <router-link to="/find">发现音乐</router-link> <router-link to="/my">我的音乐</router-link> <router-link to="/friend">朋友</router-link> </div> <div clas ...
vue学习Day5
发表于2023-08-12|前端知识
一、今日学习目标1.自定义指令 基本语法(全局、局部注册) 指令的值 v-loading的指令封装 2.插槽 默认插槽 具名插槽 作用域插槽 3.综合案例:商品列表 MyTag组件封装 MyTable组件封装 4.路由入门 单页应用程序 路由 VueRouter的基本使用 二、自定义指令1.指令介绍 内置指令:v-html、v-if、v-bind、v-on… 这都是Vue给咱们内置的一些指令,可以直接使用 自定义指令:同时Vue也支持让开发者,自己注册一些指令。这些指令被称为自定义指令 每个指令都有自己各自独立的功能 2.自定义指令概念:自己定义的指令,可以封装一些DOM操作,扩展额外的功能 3.自定义指令语法 全局注册 1234567//在main.js中Vue.directive('指令名', {  "inserted" (el) {    // 可以对 el 标签,扩展额外功能 el.focus()  }}) 局部注册 123456789//在Vue组件的配置项中directiv ...
vue学习Day4
发表于2023-08-11|前端知识
一、今日学习目标1.组件的三大组成部分(结构/样式/逻辑)​ scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法 父传子 子传父 非父子通信(扩展) 3.综合案例:小黑记事本(组件版) 拆分组件 列表渲染 数据添加 数据删除 列表统计 清空 持久化 4.进阶语法 v-model原理 v-model应用于组件 sync修饰符 ref和$refs $nextTick 二、scoped解决样式冲突1.默认情况:写在组件中的样式会 全局生效 → 因此很容易造成多个组件之间的样式冲突问题。 全局样式: 默认组件中的样式会作用到全局,任何一个组件中都会受到此样式的影响 局部样式: 可以给组件加上scoped 属性,可以让样式只作用于当前组件 2.代码演示BaseOne.vue 12345678910111213<template> <div class="base-one"> BaseOne </div></template><script& ...
1…789
avatar
CJJJX
Front-end/NWU/SE/2021
文章
90
标签
16
分类
11
Follow Me
公告
欢迎来到我的博客一起学习共同进步~
最新文章
npm引入依赖包时版本符号的探究记录2024-06-16
React是如何防xss的2024-06-08
React如何实现插槽2024-06-01
长短轮询和长短连接的区别2024-05-31
css选择器权重2024-05-11
分类
  • JS小案例2
  • css1
  • record1
  • ts1
  • vue小案例1
  • 八股文1
  • 前端充电宝22
  • 前端知识47
标签
安全 css vue ts 网络 手撕 前端知识 echarts notes 前端充电宝 八股文 工程化 js 自适应 项目 React
归档
  • 六月 20243
  • 五月 20243
  • 四月 20243
  • 三月 202413
  • 二月 202410
  • 一月 20247
  • 十二月 202310
  • 十一月 202312
©2023 - 2024 By CJJJX
框架 Hexo|主题 Butterfly
搜索
数据库加载中