首页
学习
活动
专区
圈层
工具
发布

React + webpack 开发单页面应用简明中文文档教程(十)在 jsx 和 scss 中使用图片

webpack 开发单页面应用简明中文文档教程(六)渲染一个列表,初识 jsx 文件 React + webpack 开发单页面应用简明中文文档教程(七)jsx 组件中调用组件、父组件给子组件传值...有人说这样方便啊,我只需要引入一个 jsx 文件就解决了所有的问题啦! 针对这个问题,我的回答是:你不能因为自己吃一勺烩的盒饭,就把自己的代码写成盒饭。我们需要菜是菜,汤是汤,饭是饭的午餐。...用一个良好的代码整理方案,完全可以解决掉你说的这些问题。 也就是说,规矩,是TM最重要的。 好,我们将代码存放在 /public/image/ 文件夹中,我们如何在 jsx 中使用图片呢?...而在开发环境下,我们是不会这么调用的。 所以,我们如果在 jsx 文件中使用图片地址,我们用一个函数来返回图片路径,就可以让我们更方便的替换这些路径地址。...我暂时没有想到如何在 scss 中自动处理这部分的方法。只能每次打包的时候,手工修改一下了。 不过和批量修改所有的图片地址相比,修改一个变量,还是要简单很多的。

1.5K30

React 中必会的 10 个概念

Promise 链式调用得到简化,易于阅读,并且使用箭头函数更加简洁: ? 最后,一旦检索到数据,就需要显示它。为了在 React 中渲染数据列表,我们必须在JSX内部循环。...主要区别: var 函数作用域 在声明变量之前访问变量时 undefined let 块作用域 在声明之前访问变量时 ReferenceError const 块作用域 在声明之前访问变量时,ReferenceError...虽然有时候代码会很简洁,但是可读性会降低,所以请谨慎使用。 ? 在 React 中,三元运算符使我们可以在 JSX 中编写更简洁的条件语句。通常使用它来根据条件决定显示或隐藏哪个组件。 ?...异步用于定义异步函数,该函数返回隐式 Promise 作为其结果。 ? 请注意,使用异步函数的代码的语法和结构看起来像常规同步函数。 关键字 await仅在异步函数中起作用。...我将 async / await 包含在此列表中是因为在每个前端项目中,我们正在做很多需要异步代码的工作。一个常见的例子是当我们想通过 API 调用获取数据时。

8.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    React 入门手册

    React 自身有一套易于使用的 API,当你开始学习的时候,需要先明白以下 4 个基本概念: 组件 JSX State Props 我们将在这篇指导中学习以上几个基本概念,那些高级的概念我们会留给其它的教程...使用 JSX 构建 UI 就像上一节中介绍的那样,JSX 的一个主要作用就是借助它可以非常容易的编写 UI。...我们在 JavaScript 文件中编写 UI 代码,而 class 是 JavaScript 语言的保留字,这就意味着我们不能使用它,它有特殊的作用(定义 JavaScript 类)。...React 会给出非常友好的错误信息,使你可以准确地定位问题并解决问题。 第三个 JSX 与 HTML 的不同点在于:在 JSX 中,我们可以内嵌 JavaScript。 我们会在下一节讨论这点。...学习如何使用条件渲染,如何在 JSX 中使用循环,如何使用 React 开发者工具 通过 plain CSS 或者 Styled Components 学习如何在 React 应用中使用 CSS。

    7.8K10

    一天梳理完React面试考察知识点

    作为普通函数使用 call apply bind 改变 this 指向作为对象方法被调用在 class 方法中调用箭头函数,永远是取上级作用域的 this2.手写 bind 函数Function.prototype.bind1...}}3.实际开发中闭包的应用场景,举例说明隐藏数据,只提供API,如做一个简单的 cache 工具 图片补充知识 - 作用域和自由变量作用域全局作用域函数作用域块级作用域(ES6新增)自由变量一个变量在当前作用域没有定义...,但被使用向上级作用域,一层一层依次寻找,直至找到为止如果到全局作用域没找到,就会报错 xx is not defined补充知识 - 闭包作用域应用的特殊情况,有两种表现:函数作为参数被传递函数作为返回值函数自由变量的查找...,是在函数定义的地方,向上级作用域查找,不是在执行的地方左右两张图都将打印 100图片补充知识 - thisthis 在各个场景中取什么值,是在函数执行的时候确定的,不是在定义函数定义的时候决定的作为普通函数使用...call apply bind 改变 this 指向作为对象方法被调用在 class 方法中调用箭头函数,永远是取上级作用域的 thiscall 是直接执行,bind是返回一个新的函数去执行图片图片图片

    3.8K40

    在微信小程序中直接运行React组件

    将react组件渲染为纯JS对象 react的渲染器本质上是一个基于react调度系统的副作用执行器,副作用的结果在web环境下就是DOM的操作,在native环境下就是调用渲染引擎光栅化图形,在art...有同学对我发出疑问:jsx编译之后React.createElement的执行结果不就是纯JS的对象么?这里需要了解react的本质。...基于react-reconciler,我在react运行时的每一个环节都做了一些副作用操作,这些副作用的本质,就是修改一个纯js对象,当react被运行起来时,它会经历一个生命周期,这在我的一个视频中有讲到...你也可以关注我的个人微信公众号 wwwtangshuangnet 和我讨论相关的问题。在每一个生命周期节点上,调度器就会执行一个副作用,即修改我提供的那个纯js对象。...解决jsx问题,将前两步的结果,在page中进行实施,以真正完成在小程序中渲染react组件的效果。

    5.7K50

    一天梳理完React所有面试考察知识点

    作为普通函数使用 call apply bind 改变 this 指向作为对象方法被调用在 class 方法中调用箭头函数,永远是取上级作用域的 this2.手写 bind 函数Function.prototype.bind1...}}3.实际开发中闭包的应用场景,举例说明隐藏数据,只提供API,如做一个简单的 cache 工具 图片补充知识 - 作用域和自由变量作用域全局作用域函数作用域块级作用域(ES6新增)自由变量一个变量在当前作用域没有定义...,但被使用向上级作用域,一层一层依次寻找,直至找到为止如果到全局作用域没找到,就会报错 xx is not defined补充知识 - 闭包作用域应用的特殊情况,有两种表现:函数作为参数被传递函数作为返回值函数自由变量的查找...,是在函数定义的地方,向上级作用域查找,不是在执行的地方左右两张图都将打印 100图片补充知识 - thisthis 在各个场景中取什么值,是在函数执行的时候确定的,不是在定义函数定义的时候决定的作为普通函数使用...call apply bind 改变 this 指向作为对象方法被调用在 class 方法中调用箭头函数,永远是取上级作用域的 thiscall 是直接执行,bind是返回一个新的函数去执行图片图片图片

    3.4K30

    探索React Hooks:原来它们是这样诞生的!

    在基于类的组件中,我们会说它在生命周期方法和自定义方法中。在功能组件中,它只是 JSX 之上的东西。 在某种程度上,Hooks 的故事与 React 及其先前用于共享代码的 API 的故事密切相关。...我们应该称之为函数组件,因为...他们有计划 2018 Hooks 从本质上讲,Hooks 只是我们可以从函数组件中调用的函数。...我们可以使用内置的钩子并编写自己的: 内置钩子:这些API(如 useState() )使功能组件能够“挂钩”到React的所有功能。 自定义钩子:这些只是我们编写的实现内置钩子的函数。...他们可能不了解类组件的“进退维谷”,如何处理这种奇怪的作用域问题,以及何时以及如何使用 HOC 或 Render Props。...我的一些朋友已经使用 React 很长时间了,他们记得这些讨论和权衡。但是我注意到(至少在 Twitter 上),历史正在重演。

    2.3K20

    React入门看这篇就够了

    JSX 中给元素添加类, 需要使用 className 代替 class 类似:label 的 for属性,使用htmlFor代替 注意 2:在 JSX 中可以直接使用 JS代码,直接在 JSX 中通过...返回的JSX,必须有一个根元素 注意:4 组件的返回值使用()包裹,避免换行问题 function Welcome(props) { return ( // 此处注释的写法 React模块 // 由于 JSX 编译后会调用 React.createElement 方法,所以在你的 JSX 代码中必须首先拿到React。...使用说明:只要组件不再被渲染到页面中,那么这个方法就会被调用( 渲染到页面中 -> 不再渲染到页面中 ) componentWillUnmount() 作用:在卸载组件的时候,执行清理工作,比如...,让数据变的可控 组件通讯 Context特性 注意:如果不熟悉React中的数据流,不推荐使用这个属性 这是一个实验性的API,在未来的React版本中可能会被更改 作用:跨级传递数据(爷爷给孙子传递数据

    5.1K30

    细说React中的useRef

    React中的useRef 最近学习react中碰到useRef碰到了一些疑问,顺手记录下来。 useState碰到的问题 说到useRef那么我们先来看看useState存在的"问题"。...先放出来关于这段简单代码带来的结论: 当Demo函数每次运行我们都称他为每一次渲染,每一次渲染函数内部都拥有自己独立的props和state,当在jsx中调用代码中的state进行渲染时,每一次渲染都会获得各自渲染作用域内的...react会重新渲染组件,每一次渲染都可以拿到独立的like状态,这个状态值是独立于每次渲染函数中的一个常量,它的作用仅仅只是渲染输出,插入jsx中的数字而已。...useRef日常主要有两种作用,我们先来说说刚才关于state碰到的问题,使用useRef来如何解决。...useRef作用一:多次渲染之间的纽带 之前通过state我们了解了,react中每一次渲染它的state/props都是相互独立的,于是自然而然我们想到如何在每一次渲染之间产生关系呢。

    2.1K20

    第一篇:JSX 代码是如何“摇身一变”成为 DOM 的?

    关于 JSX 的 3 个“大问题” 在日常的 React 开发工作中,我们已经习惯了使用 JSX 来描述 React 的组件内容。关于 JSX 语法本身,相信每位 React 开发者都不陌生。...这就引出了“JSX 语法是如何在 JavaScript 中生效的”这个问题。...这里提到,JSX 在被编译后,会变成一个针对 React.createElement 的调用,此时你大可不必急于关注 React.createElement 这个 API 到底做了什么,后面会单独讲解。...这里我仍然键入文章开头示例代码中的JSX 部分: 可以看到,所有的 JSX 标签都被转化成了 React.createElement 调用,这也就意味着,我们写的 JSX 其实写的就是 React.createElement...JSX 是如何映射为 DOM 的:起底 createElement 源码 在分析开始之前,你可以先尝试阅读我追加进源码中的逐行代码解析,大致理解 createElement 中每一行代码的作用: export

    1.9K11

    社招前端二面react面试题集锦

    在 Reducer文件里,对于返回的结果,要注意哪些问题?在 Reducer文件里,对于返回的结果,必须要使用 Object.assign ( )来复制一份新的 state,否则页面不会跟着数据刷新。...在 EMAScript5语法规范中,关于作用域的常见问题如下。(1)在map等方法的回调函数中,要绑定作用域this(通过bind方法)。...在 EMAScript6语法规范中,关于作用域的常见问题如下。...(3)父组件传递方法要绑定父组件作用域。总之,在 EMAScript6语法规范中,组件方法的作用域是可以改变的。这段代码有什么问题?...在编译的时候,把它转化成一个 React. createElement调用方法。说说你用react有什么坑点?1. JSX做表达式判断时候,需要强转为boolean类型如果不使用 !!

    2.6K60

    React常见面试题

    不过是更新的问题,在新版的APP中得以解决 只要你能确保 context是可控的,合理使用,可以给react组件开发带来强大体验 # render函数中return如果没用使用()会用什么问题吗?...jsx调用js本身的特性来动态创建UI,与于传统模式下的模板语法不同 # react中组件通信的几种方式?...,从而产生难以预料到的后果 响应式的useEffect: 当逻辑较复杂时,可触发多次 状态不同步:函数的运行是独立的,每个函数都有一份独立的作用域。...函数的变量是保存在运行时的作用域里面,当我们有异步操作的时候,经常会碰到异步回调的变量引用是之前的,也就是旧的(这里也可以理解成闭包场景可能引用到旧的state、props值),希望输出最新内容的话,可以使用...共享状态钩子,在组件之间共享状态,可以解决react 逐层通过props传递数据的问题 使用流程(使用流程和react-redux差不多): 创建store:通过 createContext Api 包裹整个组件

    5.4K20

    滴滴前端高频react面试题汇总_2023-02-27

    说说 React组件开发中关于作用域的常见问题。 在 EMAScript5语法规范中,关于作用域的常见问题如下。 (1)在map等方法的回调函数中,要绑定作用域this(通过bind方法)。...在 EMAScript6语法规范中,关于作用域的常见问题如下。...(1)当使用箭头函数作为map等方法的回调函数时,箭头函数的作用域是当前组件的实例化对象(即箭头函数的作用域是定义时的作用域),无须绑定作用域。 (2)事件回调函数要绑定组件作用域。...(3)父组件传递方法要绑定父组件作用域。 总之,在 EMAScript6语法规范中,组件方法的作用域是可以改变的。 什么是 React Fiber?...单一状态树可以更容易地跟踪随时间的变化,并调试或检查程序 在 Reducer文件里,对于返回的结果,要注意哪些问题?

    1.6K20

    超性感的React Hooks(二)再谈闭包

    两年以来我面试过估计200多人,其中技术能力最强的是阿里P6的一个胖胖的哥们儿,这里简称PP。PP的JS基础很扎实,对React的理解比较深刻,其他问题上我们聊得很开心。...在JS基础进阶系列中,我已经将闭包的基础,定义,特点,以及如何在chrome浏览器中观察闭包都一一跟大家分享了,这一篇就着眼于实践继续学习。...就以我和PP同学在面试过程中的对话为引子,对话内容大概如下: 我:能聊聊你对闭包的理解吗 PP:函数执行时访问上层作用域的变量,就能形成闭包,闭包可以持久化保持变量。 我:还有其他的吗?...许多地方喜欢用词法环境,或者词法作用域来定义闭包的概念,但是闭包是代码执行过程中才会产生的特殊对象,因此我认为使用执行上下文更为准确。当然,这并不影响闭包的理解与使用。...分析结果发现,该函数修改了外层作用域中的变量,这就是我们想要的重要讯息。

    1.5K20

    「React 基础」在 React 项目中使用 ES6,你需要了解这些

    随着操作越来越多,就会严重影响站点应用的性能,为了解决这个问题,React 引入了虚拟DOM(DOM directly) 这项技术,将这些操作变化放到内存中进行运算,有结果了在一次性返回进行 DOM 的渲染...在React项目中,运用 ES6+ 的新特征 在 React 的简介中,我介绍过了,React 项目中我们可以使用 JavaScript 的最新语法(ES6,ES7和ES8)。...let 和 const 的用法 1、在ES6中,官方推荐使用 let 和 const 声明变量,你可以使用let声明块级的作用域,使用 const 来定义常量。...let 和 var 的区别,除了块级作用域,还有一个更重要的就是 let 不能声明全局变量,但是 var 却可以, 为了防止意外,我们应该在 React项目中避免使用 var。...在React中我们经常使用 axios 或 fetch 这些封装好的API 处理请求,但是在服务端渲染方面,会经常用到原生的Promise,在后续的文章里,笔者会有介绍。

    3.6K30

    前端常考react相关面试题(一)

    为了解决跨浏览器兼容性问题, React中的事件处理程序将传递 SyntheticEvent的实例,它是跨浏览器事件的包装器。...中,refs 的作用是什么 Refs 可以用于获取一个 DOM 节点或者 React 组件的引用。...何为纯函数(pure function) 一个纯函数是一个不依赖于且不改变其作用域之外的变量状态的函数,这也意味着一个纯函数对于同样的参数总是返回同样的结果。...使用箭头函数(arrow functions)的优点是什么 作用域安全:在箭头函数之前,每一个新创建的函数都有定义自身的 this 值(在构造函数中是新对象;在严格模式下,函数调用中的 this 是未定义的...为何React事件要自己绑定this 在 React源码中,当具体到某一事件处理函数将要调用时,将调用 invokeGuardedCallback方法。

    2.4K20

    React基础(3)-不可不知的JSX

    组件的大小写问题,使用拓展运算符,以及怎么循坏遍历一个对象 JSX中的prop指的是什么?以及表单的labe应该要注意什么? 以上问题即使自己很清楚,但是否有时却总是道不清,说不明?...**注意**: React必须在作用域内,JSX其实就是React.createElement函数的语法糖,React.createElement是更接近底层的API,所以React库也必须包含在JSX...代码作用域内 引入React库一部分目的就是为了识别JSX语法的,这也是为什么只要你定义一个React组件时,要引入React库的原因 使用点(.)语法 有时候,在一个模块中需要导出多个React组件时..." id="firstname"> 结果如下所示 焦点htmlFor.gif 总结 本文主要讲述在JSX中添加属性的命名方式应是camelCase驼峰式命名来定义属性的名称,JSX中的子元素可以是字符串...,可以嵌套,以及js表达式,函数都可以作为子元素 并且在React中组件的定义以及调用处,组件名称首字母必须要大写,当导出多个React组件时,使用点语法来引用一个React组件 使用展开运算符 ...

    2.3K10

    【愚公系列】2023年03月 其他-Web前端基础面试题(react专项_35道)

    针对上面提到的问题,react团队研发了hooks,它主要有两方面作用: 用于在函数组件中引入状态管理和生命周期方法 取代高阶组件和render props来实现抽象和可重用性 优点也很明显: 避免在被广泛使用的函数组件在后期迭代过程中...useMemo或者memo做组件的缓存,减少子组件不必要的DOM渲染 useCallback:当父组件向子组件传递函数的时候,父组件的改变会导致函数的重新调用产生新的作用域,所以还是会导致子组件的更新渲染...29、使用箭头函数(arrow functions)的优点是什么 作用域安全:在箭头函数之前,每一个新创建的函数都有定义自身的 this 值(在构造函数中是 新对象;在严格模式下,函数调用中的 this...简单:箭头函数易于阅读和书写 清晰:当一切都是一个箭头函数,任何常规函数都可以立即用于定义作用域。...在回调中你可以使用箭头函数,但问题是每次组件渲染时都会创建一个新的回调。

    10.4K10

    前端几个常见考察点整理

    }> 按钮 }何为纯函数(pure function)一个纯函数是一个不依赖于且不改变其作用域之外的变量状态的函数,这也意味着一个纯函数对于同样的参数总是返回同样的结果...React 并不强制要求使用 JSX。当不想在构建环境中配置有关 JSX 编译时,不在 React 中使用 JSX 会更加方便。...每个 JSX 元素只是调用 React.createElement(component, props, ...children) 的语法糖。...在回调中你可以使用箭头函数,但问题是每次组件渲染时都会创建一个新的回调。React 中 keys 的作用是什么?Keys 是 React 用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识。...一些库如 React 视图在视图层禁止异步和直接操作 DOM来解决这个问题。美中不足的是,React 依旧把处理 state 中数据的问题留给了你。Redux就是为了帮你解决这个问题。

    1.8K50

    字节前端面试题总结

    (arrow functions)的优点是什么作用域安全:在箭头函数之前,每一个新创建的函数都有定义自身的 this 值(在构造函数中是新对象;在严格模式下,函数调用中的 this 是未定义的;如果函数被称为...开发者总是可以查找 next-higher 函数语句,以查看 this 的值何为纯函数(pure function)一个纯函数是一个不依赖于且不改变其作用域之外的变量状态的函数,这也意味着一个纯函数对于同样的参数总是返回同样的结果...面对这个问题,可以使用如下方法进行解决:(1)使用setState改变数据之前,先采用ES6中assgin进行拷贝,但是assgin只深拷贝的数据的第一层,所以说不是最完美的解决办法:const o2...JSX 生产 React "元素",你可以将任何的 JavaScript 表达式封装在花括号里,然后将其嵌入到 JSX 中。...(在构造函数中)调用 super(props) 的目的是什么在 super() 被调用之前,子类是不能使用 this 的,在 ES2015 中,子类必须在 constructor 中调用 super()

    2K10
    领券