首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从零开始学习BOM&DOM

id属性以及值 继承关系 其中DOM元素、window对象都继承自EventTarget,所以它们都有EventTarget的实例方法而documentHTMLDocument的实例对象 所以window...可以绑定事件,监听事件,分发事件的 其中DOM 的所有元素节点都继承自EventTarget接口,所以DOM任意节点可以绑定事件,监听事件,分发事件 我们可以浏览器打印它的原型属性 通过下图我们可以看出...Element,document 和 window 最常见的 event targets EventTarget有三个原型方法,window和DOM元素都可以使用 addEventListener...我们知道ECMAScript其实是有一个全局对象的,这个全局对象Nodeglobal;浏览器中就是window对象; 身份二:浏览器窗口对象。...DOM2和DOM3 DOM1级主要定义的HTML和XML文档的底层结构 DOM2级和DOM3级在这个结构基础引入了更多的交互能力和特性。

54420

Nuxt3使用Tailwindcss情况下,如何优雅实现深色模式切换?

可以帮助用户减少眼睛的负担,同时也更加适合在光线较暗的环境下使用。 打个比方,日常下班坐地铁、公车回家,地铁还好,都有灯,公车…… 有时候跨区站的时候,司机会关灯,这个时候,深色模式就太刚需了。...一些组件,Vue3可以使用,Nuxt3的Server端,可能就会出现问题。...;,加上class="dark"。...图片 检查了其他地方源码和官方文档,可以知道nuxt.config.ts内可以配置的内容: { // 首选颜色模式,可以是 'light'、'dark' 或 'system' // 如果设置为...',紧接着,查看项目的module.ts,便可以找到script的来源: 图片 最后,我们可以知道:它通过直接在内联一个脚本,这个脚本会在页面其他元素渲染前执行: 该脚本会立即读取本地存储和系统偏好的值

1.4K160
您找到你想要的搜索结果了吗?
是的
没有找到

【Vue.js】1711- 深入浅出 Vue3 自定义指令

概念介绍 Vue.js ,指令 (Directives) 一种带有 v- 前缀的特殊属性。它的作用是「当其绑定的元素被插入到 DOM 时,会立即执行一些行为」。...Vue.js 中有许多内置指令,比如: v-model:表单元素创建「双向数据绑定」; v-show:根据表达式之真假值,「切换元素的 display CSS 属性」; v-if:根据表达式之真假值...mounted(el) { // 聚焦元素 el.focus(); }, }); 源码里面接口类型定义如下: export interface ObjectDirective<T..., true]]); }, }; 这个示例代码的 vnode 一个 input 元素的虚拟节点,focus v-focus 自定义指令的函数,true 传递给自定义指令的参数数组,表示元素插入文档后自动聚焦...学习资料 以下一些我个人认为不错 Vue3 自定义指令的学习资料: Vue.js 官方文档:自定义指令[4] Vue.js 官方文档学习 Vue.js 自定义指令的最佳入门资料,其中包括了自定义指令的定义

46020

React报错之Object is possibly null

一旦null被排除ref的类型之外,我们就能够访问ref属性。 useref-object-is-possibly-null.webp 下面一个错误如何发生的示例。...为了解决这个错误访问ref类型属性之前,我们必须使用类型守卫来从其类型中排除null。...当程序进入到if代码块,TypeScript就会知道ref对象的current属性就不会存储null。 确保useRef钩子使用泛型,正确的类型声明ref的current属性。...而不会在undefined尝试调用focus方法,导致一个运行时错误。 非空断言 另一种解决方案使用非空断言!操作符。...当我们使用非空断言时,基本我们就是告诉TS,ref对象的current属性不会存储null或者undefined。

82910

从零开始学习DOM-BOM(一)

我们知道ECMAScript其实是有一个全局对象的,这个全局对象Nodeglobal; 浏览器中就是window对象; 身份二:浏览器窗口对象。...,alert、close、scrollTo、open等等(大概40+个方法); 第三:包含大量的事件,focus、blur、load、hashchange等等(大概30+个事件); 第四:包含从EventTarget...innerHeight 返回窗口的文档显示区的高度。 innerWidth 返回窗口的文档显示区的宽度。 localStorage 浏览器存储 key/value 对。没有过期时间。...类型;如果把该方法的参数设置为 true,那么无论文档的最后修改日期是什么,它都会绕过缓存,从服务器重新下载该文档。...history对象有两个属性 length:会话的记录条数; state:当前保留的状态值; history对象有五个方法: back():返回一页,等价于history.go(-1); forward

44430

JavaScriptJQuery基本使用

console.dir()//可以显示一个对象所有的属性和方法 ---- 加载doc后执行函数 $(document).ready(function(){ //函数内容 } ---- 查看变量类型...可以看字符、数字等简单变量类型,一些复杂的一律按object来显示 typeof ---- 类型转换 String() //转成字符串 Number() //转成数字 parseFloat() //转浮点型...select的列表项的选中的项的值 $("#select").children('option:selected')select元素的选中的子元素 // js var select = document.querySelector...window.location.href="你所要跳转的页面"; 新窗体打开页面用: window.open('你所要跳转的页面'); window.history.back(-1);返回一页...---- json处理 如果json由数组来的,那么parse()解析后,会变为json数组,使用json[数字]来获取数据,由对象变来的话,会变为json对象,使用json.属性 获取值,或者 json

23730

React学习(5)—— 高阶应用:prop类型检查与真实Dom操作

除了引入外部工具之外,React也提供了参数类型检查的功能,只需要为每一个属性指定一个 propTypes 即可: // 15.5之后,需要单独引入PropTypes依赖才能使用类型检查 // 之前的版本使用方式为...// 错误只需要返回,切记不能使用throw或console.warn输出 // 不适用于 oneOfType 类型。...什么时候需要使用Refs 当遇到以下情况时,建议使用Refs特性: 需要管理聚(focus)、文档选择或媒体回放等真实Dom事件时。 触发需要马上执行的动画。 引入第三方库时。...避免将Refs用于任何声明性的工作,如使用一个props.isOpen参数来代替Dialog的open()和close()接口。 将Ref添加到Dom元素 React支持在任何组件使用ref。...不过function组件,如果内部引用的另一个class组件也是可以使用Refs特性的: function CustomTextInput(props) { // 在这里声明textInput

1.2K20

React prop类型检查与Dom

除了引入外部工具之外,React也提供了参数类型检查的功能,只需要为每一个属性指定一个 propTypes 即可: // 15.5之后,需要单独引入依赖才能使用类型检查 import PropTypes...// 错误只需要返回,切记不能使用throw或console.warn输出 // 不适用于 oneOfType 类型。...什么时候需要使用Refs 当遇到以下情况时,建议使用Refs特性: 需要管理聚(focus)、文档选择或媒体回放等真实Dom事件时。 触发需要马上执行的动画。 引入第三方库时。...避免将Refs用于任何声明性的工作,如使用一个props.isOpen参数来代替Dialog的open()和close()接口。 将Ref添加到Dom元素 React支持在任何组件使用ref。...不过function组件,如果内部引用的另一个class组件也是可以使用Refs特性的: function CustomTextInput(props) { // 在这里声明textInput

1.6K20

【vite+vue3+Ts+element-plus】肩并肩带你写后台管理之vite初始化项目以及项目准备工作

/的方式去查找,如果层级多的话很不方便,所以我们通常会给一些常用目录配置一个别名,比如下面我们就在vite给src目录配置一个‘@’别名 首先我们需要安装node的类型声明文件,要不然ts可能会报警告...auto 0; } 然后main.ts引入即可 // main.ts import '@/assets/style/normalize.css' vue-router 首先我们来安装一下vue-router...,编辑器ts会报找不到vue文件相关类型声明的错误 解决办法:我们可以根目录创建一个env.d.ts,在里面写入以下内容 /// ...declare module '*.vue' { //引入vue模块ts的方法 import type { DefineComponent } from 'vue' // 定义vue組件以及类型注解...,你可以认为 state  store 的数据 (data),getters  store 的计算属性 (computed),而 actions 则是方法 (methods),相比vuex,pinia

74142

JavaScript 编程精解 中文第三版 十五、处理事件

传播 对于大多数事件类型具有子节点的节点注册的处理器,也将接收发生在子节点中的事件。若点击一个段落的按钮,段落的事件处理器也会收到点击事件。...触摸事件 我们使用的图形浏览器的风格,考虑到鼠标界面的情况下而设计的,那个时候触摸屏非常罕见。 为了使网络早期的触摸屏手机上“工作”,某种程度上,这些设备的浏览器假装触摸事件鼠标事件。...触摸屏与鼠标的工作方式不同:它没有多个按钮,当手指不在屏幕时不能跟踪手指(来模拟"mousemove"),并且允许多个手指同时屏幕。...实际,事件处理器进行滚动之后才触发的。 焦点事件 当元素获得焦点时,浏览器会触发其focus事件。当失去焦点时,元素会获得blur事件。 与前文讨论的事件不同,这两个事件不会传播。...您可以通过在其父元素设置font-size CSS 属性(style.fontSize)来控制文本大小(emoji 文本)。 请记住在该值包含一个单位,例如像素(10px)。

5.5K20

前端工程化-打造企业通用脚手架

以往工作,我们可能需要先做如下操作才能开始编写业务代码: 技术选型 初始化项目,选择包管理工具,安装依赖 编写基础配置项 配置本地服务,启动项目 开始编码 随着Vue/React的兴起,我们可以借助官方提供的脚手架...脚手架能力 但是这些脚手架针对于具体语言(Vue/React)的,而在我们实际工作不同BU针对不同端(PC、Wap、小程序...)所采用的技术栈也可能不同,往往特定端采用的技术栈在一定程度上都可以复用的到其他类似项目中...但是babel因为单文件编译的特点,做不了和tsc的多文件类型编译一样的效果,有几个特性不支持(主要是 namespace 的跨文件合并、导出非 const 的值),不过影响不大,整体可用的。...focus add material核心流程 开发一个页面的过程,你可能需要如下几个步骤 src/pages/新建NewPage目录,以及index.tsx/index.less/index.d.ts...src/models/新建NewPage.ts文件,去做状态管理 src/servers/新建NewPage.ts文件,去管理接口调用 config/routes.ts文件插入一条NewPage

73020

🔖TypeScript 备忘录:如何在 React 完美运用?

前言 一直以来,ssh 身边都有很多小伙伴对 TS 如何在 React 运用有很多困惑,他们开始慢慢讨厌 TS,觉得各种莫名其妙的问题降低了开发的效率。...其实如果运用熟练的话,TS 只是第一次开发的时候稍微多花一些时间去编写类型,后续维护、重构的时候就会发挥它神奇的作用了,还是非常推荐长期维护的项目使用它的。...前置基础 阅读本文的前提条件: 熟悉 React 的使用。 熟悉 TypeScript 类型知识。 本文会侧重使用 React Hook 作为示例,当然大部分类型知识都是通用的。...image.png 通过 optional-chaining 语法(TS 3.7 以上支持),可以避免这个错误。 // ✅ ok const name = user?....绝大部分情况下,inputEl.current?.focus() 个更安全的选择,除非这个值真的不可能为空。

2.7K21

声明合并_TypeScript笔记16

会创建类型的声明:创建一个指定“形状”的类型,并以给定的名称命名 会创建值的声明:创建一个值,输出的 JavaScript 也存在 具体的, TypeScript 的 7 种声明,命名空间具有命名空间和值含义...doAnimalsHaveWings; })(Animal || (Animal = {})); 与类、函数及枚举的合并 除了能与其它命名空间合并外,命名空间还能与类、函数以及枚举合并 这种能力允许(类型...)扩展现有类、函数与枚举,用于描述 JavaScript 的常见模式,比如给类添加静态成员,给函数添加静态属性等等 P.S.要求命名空间声明必须后出现,否则报错: // 错误 A namespace...能够以这种方式扩展现有模块,但有2 点限制: 无法模块扩展添加顶层声明,只能对扩展已存在的声明 无法扩展默认导出,只能扩展具名导出(因为default保留字,无法按名扩展,具体见Can not declaration...模块文件不存在引起的,真实文件模块能够正常编译 全局扩展 也能以类似的方式扩展“全局模块”(即修正全局作用域下的东西),例如: // 源码文件 observable.ts export class

1.1K10

HTML5的DOM扩展(一)

document.getElementsByClassName() 这个方法和我们前几天说的document.querySelector()方法很像,只不过这个方法获取类名,它不需要加点,也不需要浏览器判断我们获取的类还是...IE9版本以上的浏览器都支持这个属性。 classList属性 classList更加方便了我们添加和删除class类,它也有length属性,还可以通过item()或者数组的括号来获取其中的元素。...contains() 判断内容是否存在类,返回的布尔值 remove()顾名思义啦,删除 toggle() 如果存在指定内容的话就删除,如果不存在的话就添加。...焦点管理 我们写表单的时候都会判断是否获取当前焦点,先说一下document.activeElement方法,它返回的当前拥有焦点的元素,它默认的话body元素。...它判断当前文档是否拥有焦点,返回的布尔值。 console.log(document.hasFocus()); 这里我们返回false的原因就是当前button获取的焦点。

85220
领券