首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript 有趣的冷知识:tagged template literals

    作者:Andy Chen 译者:前端小智 来源: medium 不晓得大家在利用 React.js 开发网页的时候有没有用过一个很好用的组件叫 styled-components,styled-components...是一个用来产生元素样式的组件,让你可以在 JSX 中编写 css 达到 CSS-IN-JS 的技巧,讲了这么多就是因为 styled-component 的官方文件有说了这句话: This unusual...这个 tagged template literal 让我有点好奇了,因为之前在使用 styled-components 的时候有发现明明要产生元素的 method 都是 function,可是在 styled-compoents...Template Strings 在开始讲 tagged template literal 时,必须要先讲一下 template strings,相信有在使用 ES6 的人都知道 template strings...没想到还是没办法把完整的字串显示出来,其实利用 tagged template literal 的方式进行 function call 时,第一个参数是 template strings 中的 raw

    25130

    JavaScript 有趣的冷知识:模板字符串

    不晓得大家在利用 React.js 开发网页的时候有没有用过一个很好用的组件叫 styled-components,styled-components 是一个用来产生元素样式的组件,让你可以在 JSX...这个 tagged template literal 让我有点好奇了,因为之前在使用 styled-components 的时候有发现明明要产生元素的 method 都是 function,可是在 styled-compoents...Template Strings 在开始讲 tagged template literal 时,必须要先讲一下 template strings,相信有在使用 ES6 的人都知道 template strings...multi-line 写法有没有瞬间觉得跟在写 styled-components 很像呢 其实 template strings 的写法跟接下来要讲的 tagged template literal...没想到还是没办法把完整的字串显示出来,其实利用 tagged template literal 的方式进行 function call 时,第一个参数是 template strings 中的 raw

    33220

    顺势而为,HTML发展与UI组件设计进化 - 腾讯ISUX

    而往前,Shadow DOM, Web Components规范和标准虽然也出现了,给大家看到了方向和未来,但由于兼容性的问题(参见下表),或者可能缺乏优秀团队的强势引领,我们在实际的项目中鲜有看到。...二、探索 正是由于当下有这些不如意的现状,所以我就一直在思考,有没有什么办法可以做出改变,不一定是大跨越式的一步到位,至少能指明柳暗花明的另一条路。...还有一个很现实的问题是兼容性,包括IE11在内的IE浏览器都没有type="date"组件行为, ?  这个补刀直接剐在了心头。 怎么办呢?...梦想总是有的,万一实现了呢? 既然使用自定义的浮层,那就需要干掉浏览器原生的浮层,怎么弄呢?我们可以让input框readonly只读,这样,就不会出现原始的输入框了。...那input框内置的三角(需要隐藏)和斜杠(需要使用短横)该怎么办呢?

    1.2K80

    代码实时预览插件:让ChatGPT生成的组件代码即刻可见

    想必,看到这篇文章的你会经常使用 gpt 去生成一些代码吧,不瞒你说,我也是,但是,有时候,我生成的代码,我想要看到他的效果,但是,我又不想去复制粘贴,然后去一个一个的创建文件,然后去一个一个的粘贴,这样的效率实在是太低了...,所以,我就想到了,有没有一种插件,可以让我生成的代码即刻可见呢?...但是,你看不到这个组件渲染的效果是怎么样的,如果你想看到效果,你大概的步骤可能是这样的:准备执行环境,React,Vue,或者其他复制代码创建一个文件粘贴代码做一些连接,加载这个组件或者,你可以借助一些在线的工具...你有没有先过,如果鼠标悬浮在 GPT 生成的代码上,就可以看到这个组件的效果呢?这样的效率是不是会高很多呢?这个体验是不是会更好呢?大声告诉我,这是不是你需要的?...那么,有没有更好的办法呢?

    60531

    ​探秘 Web 水印技术

    所以,为了避免被其他元素遮挡,针对页面的水印一般会使用一个层级比较高且覆盖整个页面的元素来承载。...SVG 方案 对于纯文字的水印来说,有没有办法不生成图片而直接实现平铺呢? 动态创建大量 DOM 节点,通过 CSS 控制排列当然可以实现,但是繁琐且性能差,优雅更无从谈起。...不妨换个角度思考,有没有办法让文字不转成图片就可以用作 background-image 属性的值呢?这样就可以利用 background-repeat 实现平铺效果了。...而 closed 则表示不可以从外部获取 Shadow DOM 。 Element.attachShadow({mode: 'closed'}); 样式怎么隔离呢?...不可见水印(盲水印) 不可见水印也叫盲水印、隐水印,顾名思义是一种看不到的水印,看不到还要它做什么呢?其实,不可见水印在一些对安全性要求较高的场景意义还是蛮大的。

    2.4K22

    vue -- 基础特性

    这里留一个坑吧,可能后续也会整理到我的vue疑问专题,就是说找茬嘛,我就要它深拷贝,有没有办法?有兴趣的同学思考下告诉我! 还有一个要提及一下就是怎么将数据和视图进行绑定。...如果其是一个块状元素,例如p,那么你大可{{message}}这样搞, 如果说是一个表单元素,那么你可以用v-model,不过这个在早期vue版本并没有这个属性。...组件 组件是一个蛮沉重的话题,我们不断地去学习一些技术框架,最后都应该以组件地形式输出,所以意义重大,这个在后面地专题应该会进行深入探讨,这里就意思下。....capture: 使用capture 模式添加事件监听器。 .self: 只当事件是从监听元素本身触发时才触发回调。...计算属性computed 举个例子吧,写过markdown的同志应该有感触,一些应用可以让你边写边实时渲染,它做的就是这么个事情,监听属性的变化。

    70720

    在追寻极致体验的康庄大道上,React 玩出了花

    对于砍不掉的长 loading,用户感知上还有办法更快吗? 布局抖动真的不存在了吗?如果列表中同时存在多个 loading 呢?...那么,有没有两全其美的办法,既能保证 loading 期间的响应性,又有类似于 loading 的交互体验呢? 有。...像上例这样立即展示 loading 没什么问题,然而,在另一些场景下,迅速出现的 loading 却不尽如人意 三.逻辑上延迟 loading 立即显示 loading,有什么不好?...的心理预期,而给一个本就非常快的操作加上 loading,无疑会拉低用户感知上的速度体验,所以我们选择不加 然而,如果有一个可能极快,也可能极慢的操作,loading 是加还是不加?...如果列表中同时存在多个 loading 呢? 在多 loading 并存的场景下,难免出现 loading 先后顺序不同造成的布局抖动。

    1.6K20

    【重构前端知识体系之HTML】讲讲对HTML5的一大特性——语义化的理解

    一些命名奇奇怪怪,想维护被劝退,团队协作导致团战开始! 因此语义化迫在眉睫! 什么是语义化 在我们写HTML时其实无所谓,因为你里面长啥样,用户看不到,也不用看到。...因为你有CSS的漂亮衣服,即使你的HTML一塌糊涂,CSS也可以让它光鲜亮丽。 但是用户看不到,开发者看得到呀!因此,这个语义化的友好者是开发者本身。...每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。... 2、标签定义文档或节的页脚 页脚通常包含文档的作者、版权信息、使用条款链接、联系信息等等。 可以在一个文档中使用多元素。...做到代码语义化,包括函数的命名,组件的命名,组件业务功能的拆分。一直在路上!

    51110

    Vue3 如何实现一个全局搜索框

    那么最简单的方法就是让它出现在 body的第一个元素,那么它一定会和我们网页所有的组件同级别(tips:通常我们所有的页面构成都会写在 body内 的一个 div 内。什么?你问我为什么?...ok,到这里我们已经可以看到基本效果了,我们来测试一下。让我们在 App.vue 组件内随便写一个按钮,然后调用 SearchBarCreator 实例身上的 present 方法。...那么该如何实现呢 打开我们之前准备的 useSearch.ts 文件,我们把之前在 App.vue 的全局生成的这个 SearchBar 实例转换思路,使它在全局的一个 ts 文件内生成一个,然后把这个实例自身的一些方法封装成函数...总结: 之所以不喜欢使用真代码去写文章而大量使用截图的原因是:我自己在搜索到自己想要的文章后,也会喜欢直接看有没有最后的成品代码,然后直接复制就拿过去用了,而往往忽略了自己动手去实现一遍才是真正理解了的过程...所以我写代码的时候,尽量不写特别复杂的逻辑,而写一些很简单的几行代码去实现某一个功能。是因为我希望你们真正带入自己的思考,和一步步体会这个实现过程,从而举一反三。

    32910

    Vue.js最佳实践(五招让你成为Vue.js大师)

    件创建的时候我们获取一次列表,同时监听input框,每当发生变化的时候重新获取一次筛选后的列表这个场景很常见,有没有办法优化一下呢?...第四招: 无所不能的render函数 场景还原: vue要求每一个组件都只能有一个根元素,当你有多个根元素时,vue就会给你报错。 ?...招式解析: 那有没有办法化解呢,答案是有的,只不过这时候我们需要使用render()函数来创建HTML,而不是template。...当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定,并且可以通过 v-bind="$attrs" 传入内部组件——在创建更高层次的组件时非常有用。...3.需要注意的是,由于我们input并不是BaseInput这个组件的根节点,而默认情况下父作用域的不被认作 props 的特性绑定将会“回退”且作为普通的 HTML 特性应用在子组件的根元素上。

    1.9K70

    15 v-if 条件渲染与 v-for 列表渲染

    所以,template是非可见元素,在vue中template仅是为了方便处理群组关系而存在的。...组件的缓存和复用 另处,值得一提的是,v-if是条件渲染,只有条件为true,组件才会创建;而另一个具有同样效果的指令v-show,仅是改变组件的display样式,无论显示与否,始终都会创建。...为了避免不同组件在渲染时受缓存的影响,所以vue规定组件应该有且只准有一个唯一的key,特别在v-for列表中。 理解了原理,修改起来就简单了。对于上面的受影响的组件,只需要修改为: input"> 在这里有一个问题,为什么input的值会被保留,但是label的文本却会变化呢?...但是key的值并不是index%10,而是index%11,这是为了让底部多一个元素,避免滚动时出现缝隙。 只有显示的元素才展示数据,不显示的元素以空白的li代替。

    1.9K20

    通过Lit和Shoelace了解Web Components的优缺点

    在文件的底部,您可以看到基于 RatingElement 将标签注册为自定义元素: customElements.define('rating-element', RatingElement); 有一个...Shoelace 让我们上一层楼,使用一些 Shoelace。现在我们获得了构建组件。 我们将安装一个使用 rollup bundler 的 Shoelace 模板并从那里开始。...最后,运行项目: 并在不同的 shell 选项卡上启动页面: 这是您应该看到的: 那么我们是如何让这些组件显示出来的呢?...) 结论 这只是使用 Shoelace 之类的库使用 Web 组件的介绍——它们最初需要一些关注,但(像框架一样)有很多丰富的内容。...但是,与框架不同,这些主要使用 HTML 和 CSS。 为了让 React 用户更容易过渡,每个 Shoelace 组件都可以作为 React 组件导入。

    13210

    用 :key 管理可复用元素

    引用官方文档的原话: Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。 这里的 input 实际上复用了切换之前的 input。...而类似 input>,, 这样的表单元素都有一个 internal state 保存着元素的值,在元素复用时,这个值是会得到保留的。...出于性能考虑,有没有办法可以只移动个别元素,单独渲染要插入的那个新元素呢?有了前面的经验,我们会想到给每个 input 一个 key 值。...于是我们想:在进行插入或者删除操作的时候,有没有一种值始终不会改变呢?有的,我们可以给每个元素一个单独的 id。...可以很明显地看到,每个元素都复用了先前的对应元素,这是因为此时 item (即元素值)才是复用的判断依据,相当于告诉 Vue:“只要这两个东西的元素值一样,就进行复用”。

    60110

    记录工作中遇到的各种问题(Bug,总结,记录)

    浏览器在开启有道划词插件的时候,使用 AjaxFileUpload 插件上传文件报错 ? 开启插件时,该插件会往文档中添加音频元素节点 ?...React 的componentDidUpdate事件调用的时机还不太清晰, 虽说是在组件更新之后才调用,不过在一个复杂页面中测试发现,componentDidUpdate已经触发了,但却获取不到页面中的元素...React 的componentDidMount事件调用的时机还不太清晰, 虽说是在组件加载完成之后才调用,但在实践中的一个需求发现一个问题,不太好解决,查了蛮久还没看到合适的方案 比如要做一个弹窗组件...后来发现是点击中间时可以,但点击边缘就没反应 ? 看了源码发现,文件input[file]项是通过点击label模拟触发的 而label的可点击区域实际上是上图中的元素 ? ? ?...Firefox中的readonly input项有光标,在Chrome中无光标 是一个bug,解决办法对改元素设置disabled属性,不过这种方式副作用比较大 推荐使用事件监听的方式 $(document

    18.2K12

    四个真秀React用法,你值得拥有

    举一个假如有这样一个需求,我们在封装的一些组件里面需要监听如下图红框区域尺寸发生变化时的实际宽度,为了能在多个组件内复用逻辑,所以我们封装了一个useLayoutReisze的hook,实现的代码如下所示图片...看一下异常边界对于我们来说,我们希望当页面的某一个组件发生报错时,最好不要影响到其他组件的显示,比如像下图所示的这种模式图片通过上图可以看到,某一个组件报错了,但是页面的其他内容还是可以正常显示出来的,...举一个在页面开发中,使用单选按钮我们一般会像下面这样去写:input type="radio" name="colors" id="red">红色input type="radio" name...注意:React.Children.only不接受React.Children.map的返回值,因为它是一个数组而不是一个React元素。5....用于克隆一个元素,然后返回一个新的元素,在前文我们在Radio.Group中有使用到这个API。

    2.3K272

    vue修饰符简略总结

    (例如事件冒泡机制) 注意: @click.prevent.self 会阻止所有的点击,而 @click.self.prevent 只会阻止对元素自身的点击。...: 移动端用到的,防止监听元素滚动事件时网页卡顿(类似.lazy防止热更新), 大大减少事件触发,提升移动端性能 7) .native: 针对原生事件在外来组件上无法生效的问题,可以理解为该修饰符的作用就是把一个...vue组件转化为一个普通的HTML标签....注意:使用.native修饰符来操作普通HTML标签是会令事件失效的 三、按键修饰符(键盘事件.修饰符) 1) .keyCode: 让键盘事件在指定的keyCode值被触发时触发,至于keyCode...$emit('update:myMessage',params); Jetbrains全家桶1年46,售后保障稳定 简化了父子传递事件时父组件的代码,当然方便之余 相应的也有一定限制: 使用sync

    1.3K40

    【前端芝士树】Vue.js面试题整理 知识点梳理

    JSX vs Template 在 React 中,所有的组件的渲染功能都依靠 JSX。JSX 是使用 XML 语法编写 JavaScript 的一种语法糖。...用户看不到 getter/setter,但是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。...(Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染,可以看一下第二段程序) v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块...v-show 通过修改元素的display的CSS属性让其显示或者隐藏,元素始终会被渲染并保留在DOM中。 Hello!...因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

    68010

    从后端到前端之Vue(六)表单组件 HTML5原生的表单和表单元素Vue组件的基础知识表单元素组件辅助工具开源

    在手机网页里的展现效果   表单元素在PC浏览器里是什么样子的,大家很容易看到,那么在手机浏览器里是什么样子的呢?先看一下表单整体效果: ?   ...data使用了function的形式,这个是在组件复用的时候区分多个组件的内部数据的。如果不用function的形式,复用的多个组件,将会共用同一个data值。   ...看到这里大家可能想,这样太复杂了,还不如直接使用原生的呢。大家先别急,看完下面这三点然后在下结论。 不是所有类型都需要这些属性,每一个类型用到的并不多。...文本框类的表单元素组件   说了这么多,还没看到代码,是不是等不急了呢?其实代码也没啥好说的,就是用了最笨的方法,一点一点设置属性。...而不是数组。因为数据库里保存的是字符串而不是数组。当然这块应该能够灵活一些,打算加一个返回值类型的设置。 辅助工具   这么复杂的json要怎么弄?不会告诉我要手撸吧!

    5.1K10
    领券