<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Google - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ freeCodeCamp 是一个免费学习编程的开发者社区，涵盖 Python、HTML、CSS、React、Vue、BootStrap、JSON 教程等，还有活跃的技术论坛和丰富的社区活动，在你学习编程和找工作时为你提供建议和帮助。 ]]>
        </description>
        <link>https://www.freecodecamp.org/chinese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Google - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/chinese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Thu, 21 May 2026 15:49:25 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/chinese/news/tag/google/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ 谷歌涂鸦游戏——棒球、吃豆人和其他游戏 ]]>
                </title>
                <description>
                    <![CDATA[ 谷歌搜索引擎的主页是世界上浏览量最大的网页。人们每天进行数十亿次的搜索。 当你登陆该网页时，在搜索框的正上方，你会看到谷歌的标志。在许多情况下，这个标志会有所不同，并伴随着所谓的涂鸦（Doodle）。 这些涂鸦的范围包括对传统标志的小的、简单的和临时的改动。但更多时候，它们是非常有创意和艺术的表达。 它们突出了世界性问题、重大历史事件、世界性节日、当地庆祝活动、纪念日和重要人物的生日（包括先驱者、艺术家和科学家）以及他们对社会的贡献。 当你点击涂鸦动画时，你可以找到关于该特定主题的更多信息，有时伴随着涂鸦还会有一个小游戏或互动。 第一幅谷歌涂鸦 1998 年 8 月 30 日，谷歌联合创始人拉里·佩奇和谢尔盖·布林参加在美国内华达州沙漠举行的年度火人节，创作了第一个涂鸦。 他们在第二个 “O” 后面放了一个类似于火人节标志的棍状图标，作为“下班”的信息，以一种有趣和创造性的方式让用户知道他们不在办公室。 谷歌当时非常年轻——自从这两名斯坦福大学学生建立搜索引擎以来，只有几年的时间。而这时距离它正式成立为一家公司还不到一个星期。 你还可以看到，标志是不同的，在结尾处有一个 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/google-doodle-games-baseball-pacman-and-more/</link>
                <guid isPermaLink="false">639694e8a7bffa07c74413b4</guid>
                
                    <category>
                        <![CDATA[ Google ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Miya Liu ]]>
                </dc:creator>
                <pubDate>Mon, 12 Dec 2022 03:18:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2022/12/google-doodle-article-image.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文：</strong> <a href="https://www.freecodecamp.org/news/google-doodle-games-baseball-pacman-and-more/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Google Doodle Games – Baseball, PacMan, and More</a>
      </p><p>谷歌搜索引擎的主页是世界上浏览量最大的网页。人们每天进行数十亿次的搜索。</p><p>当你登陆该网页时，在搜索框的正上方，你会看到谷歌的标志。在许多情况下，这个标志会有所不同，并伴随着所谓的涂鸦（Doodle）。</p><p>这些涂鸦的范围包括对传统标志的小的、简单的和临时的改动。但更多时候，它们是非常有创意和艺术的表达。</p><p>它们突出了世界性问题、重大历史事件、世界性节日、当地庆祝活动、纪念日和重要人物的生日（包括先驱者、艺术家和科学家）以及他们对社会的贡献。</p><p>当你点击涂鸦动画时，你可以找到关于该特定主题的更多信息，有时伴随着涂鸦还会有一个小游戏或互动。</p><h2 id="-">第一幅谷歌涂鸦</h2><p>1998 年 8 月 30 日，谷歌联合创始人拉里·佩奇和谢尔盖·布林参加在美国内华达州沙漠举行的年度火人节，创作了第一个涂鸦。</p><p>他们在第二个 “O” 后面放了一个类似于火人节标志的棍状图标，作为“下班”的信息，以一种有趣和创造性的方式让用户知道他们不在办公室。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-25-at-10.43.13-AM.png" class="kg-image" alt="Screenshot-2021-07-25-at-10.43.13-AM" width="600" height="400" loading="lazy"></figure><p>谷歌当时非常年轻——自从这两名斯坦福大学学生建立搜索引擎以来，只有几年的时间。而这时距离它正式成立为一家公司还不到一个星期。</p><p>你还可以看到，标志是不同的，在结尾处有一个感叹号。</p><h2 id="--1">谷歌涂鸦的发展</h2><p>从那时起，这种在庆祝著名事件时改变标志的新想法就诞生了，涂鸦也随之发展起来。</p><p>将近两年后，佩奇和布林要求当时的实习生丹尼斯·黄创作一个涂鸦，以纪念 2000 年 7 月 14 日的巴士底狱日。这款涂鸦深受欢迎，丹尼斯·黄被任命为首席涂鸦官（Chief Doodler）。</p><p>涂鸦开始更经常地出现在主页上。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-25-at-11.03.13-AM.png" class="kg-image" alt="Screenshot-2021-07-25-at-11.03.13-AM" width="600" height="400" loading="lazy"></figure><p>从那时起，谷歌有一个由天才插画师（被称为涂鸦者）组成的专门团队，负责创作全球各地的谷歌主页上出现的涂鸦。</p><p>早期的涂鸦是相当简单的。当你将鼠标悬停在涂鸦上时，会出现一个小的弹出式文字，指出所纪念的内容。</p><p>在 2000 年的万圣节，特邀艺术家 Lorie Loeb 创作了第一个动画涂鸦。它的特点是用两个南瓜灯代替 “O”，一只蜘蛛从 “L” 上垂下。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/halloween_loop.gif" class="kg-image" alt="halloween_loop" width="600" height="400" loading="lazy"></figure><p>另一个值得注意的与科技有关的怀旧涂鸦是 2019 年 3 月 12 日的涂鸦，谷歌用它纪念万维网诞生 30 周年。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/30th-anniversary-of-the-world-wide-web-4871946884874240-2xa-1.gif" class="kg-image" alt="30th-anniversary-of-the-world-wide-web-4871946884874240-2xa-1" width="600" height="400" loading="lazy"></figure><p>你可以查看主页上出现过的所有谷歌涂鸦的<a href="https://www.google.com/doodles#archive">历史档案</a>，让你重温任何涂鸦，并发现你可能还没有看到的新涂鸦。</p><h2 id="--2">第一个谷歌涂鸦游戏</h2><p>涂鸦技术不断改进，2010 年 5 月 21 日，谷歌发布了它的第一个互动游戏——第一个可玩的谷歌涂鸦游戏。</p><p>这次发布是为了庆祝 1980 年发布的最受欢迎的经典街机游戏之一《吃豆人》（Pac Man）的 30 周年纪念。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-25-at-4.57.49-PM.png" class="kg-image" alt="Screenshot-2021-07-25-at-4.57.49-PM" width="600" height="400" loading="lazy"></figure><p>这对谷歌来说是一个巨大的发展，通过带回这样一个有趣和令人上瘾的回归游戏，它一定照亮了许多人的日子。据估计，在游戏发布的前三天，有超过 10 亿人玩过这个游戏。</p><p>吃豆人涂鸦游戏唤起了 8 位的怀旧记忆，因为它使用了相同的图形，以及相同的原始颜色、声音和标志性人物。它甚至包含了相同的原始游戏逻辑和错误（！）。</p><p>如果你想回味一下，或者第一次接触这个游戏，你可以在<a href="https://www.google.com/doodles/30th-anniversary-of-pac-man">这里</a>玩。</p><p>只需按下“插入硬币”并使用键盘上的方向键。你是一个黄色的英雄，目的是吃掉所有的点，而不被不同颜色的鬼抓住。</p><p>做好可能在这个游戏上花费太多时间的准备吧。</p><h2 id="--3">如何玩涂鸦谷歌游戏</h2><p>此后，又出现了许多有趣的互动游戏和拼图。</p><p>涂鸦和游戏通常会停留一天，以纪念一个特定的事件。但谷歌将所有旧的涂鸦和涂鸦游戏存档在<a href="https://www.google.com/doodles?q=interactive">专门的页面</a>上，而不是直接将其删除。</p><p>正因为如此，你可以玩任何在搜索引擎主页上出现过的游戏。</p><p>玩这些游戏很容易，而且不费力气。</p><p>它们都是基于 web 的，可以在桌面和手机上玩，不需要下载任何东西或设置控制台。你不需要任何设备——只需要一个浏览器和互联网连接。</p><p>点击链接，进入特定游戏的页面，然后点击开始游戏。</p><p>在大多数情况下，你会使用你的鼠标或触控板和键盘。如果你用手机玩，你会用滑动或轻敲的方式。</p><h2 id="--4">流行的涂鸦谷歌游戏</h2><p>下面是一些最知名的和最受欢迎的涂鸦游戏的列表，根据不同的类别分组。</p><h3 id="--5">涂鸦脑筋急转弯游戏</h3><p><strong>鲁比克魔方</strong></p><p>魔方于 2014 年 5 月 19 日出现在主页上，是最大的和最迷人的智力挑战之一。</p><p>颜色是水平移动的，但你可以通过点击魔方上的任何地方来移动它的每一片，让它在所有的侧面上转动。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/rubik-1.gif" class="kg-image" alt="rubik-1" width="600" height="400" loading="lazy"></figure><h4 id="--6"><strong>纵横字谜</strong></h4><p>2013 年 12 月 21 日，谷歌出了一个向<a href="https://www.google.com/logos/2013/crossword/crossword13.html">填字游戏</a>致敬的活动，以纪念填字游戏的 100 年。</p><p>在最好的和最知名的填字游戏导师之一 Merl Reagle 的帮助下，谷歌创造了他们自己版本的带线索的填字游戏。它还在整个过程中分享了谜题的历史片段。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-25-at-8.13.01-PM.png" class="kg-image" alt="Screenshot-2021-07-25-at-8.13.01-PM" width="600" height="400" loading="lazy"></figure><h3 id="--7"><strong>涂鸦编码游戏</strong></h3><h4 id="--8"><strong>胡萝卜编码</strong></h4><p><a href="https://www.google.com/doodles/celebrating-50-years-of-kids-coding">胡萝卜编码</a>通过连接代表编码概念的积木，将儿童（或你！）引入编程的世界。引导一只兔子穿越 6 个关卡，到达它最喜欢的食物——胡萝卜——并收集它。</p><p>该游戏于 2017 年 12 月 4 日在计算机科学教育周期间与麻省理工学院合作发布，以庆祝儿童编码和儿童编码语言的 50 周年。它是基于 Scratch 编程语言。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/carrot.gif" class="kg-image" alt="carrot" width="600" height="400" loading="lazy"></figure><h3 id="--9">体育爱好者的涂鸦游戏<br>板球</h3><p><a href="https://www.google.com/doodles/icc-champions-trophy-2017-begins">板球</a>是为了庆祝 2017 年 ICC 冠军杯而推出的，你在一个动画里玩板球。</p><p>当你看到球过来了，想要击球得分，只需点击球棒就可以挥动它。这是对这项运动的巧妙再创造。<br></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/cricket.gif" class="kg-image" alt="cricket" width="600" height="400" loading="lazy"></figure><h4 id="--10"><strong>棒球</strong></h4><p><a href="https://www.google.com/doodles/fourth-of-july-2019">棒球</a>是为了纪念 2019 年 7 月 4 日美国独立日而推出的。球员是经典的美国小吃，如热狗、薯条和番茄酱。</p><p>点击挥动球棒，如果你像我一样，准备好听到“你出局了”的次数（否则你会看到大量的烟花）。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/4th.gif" class="kg-image" alt="4th" width="600" height="400" loading="lazy"></figure><h4 id="--11"><strong>篮球</strong></h4><p><a href="https://www.google.com/doodles/basketball-2012">篮球</a>于 2012 年问世，以这款互动式篮球游戏向 2012 年夏季奥运会致敬。你尝试在 24 秒内尽可能多地上篮。</p><p>除了这个游戏，在此期间，谷歌还发布了其他三个独立的互动体育游戏，如<a href="https://www.google.com/doodles/soccer-2012">足球</a>。在这款游戏中，你是一名守门员，用空格键阻止来球入网，用方向键改变你的位置。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-26-at-2.48.47-PM.png" class="kg-image" alt="Screenshot-2021-07-26-at-2.48.47-PM" width="600" height="400" loading="lazy"></figure><h4 id="2020-"><strong>2020 </strong>东京奥运会</h4><p>为了庆祝 <a href="https://www.google.com/doodles/doodle-champion-island-games-july-24">2020 年东京奥运会</a>，谷歌发布了其迄今为止最雄心勃勃、最精心设计、最复杂的游戏——一个名为涂鸦冠军岛游戏的完整动漫体育游戏。</p><p>这是对复古的 16 位日本视频游戏的致敬，有 7 个迷你奥运游戏的体育赛事主题可供选择（包括乒乓球、滑板和艺术游泳等等）。这是谷歌发布的最大的游戏。</p><p>你扮演的是一只名叫 Lucky 的 Calico 忍者战士猫，它来到了正在举行节日的岛上。你可以从 4 个团队中选择一个——蓝队、红队、黄队或绿队——由 Ushi、Karasu、Inari 或 Kappa 代表。</p><p>在游戏中，使用方向键和空格键，通过庆祝日本的历史、文化和体育来表达敬意。它是与日本动画工作室 Studio 4°C 合作制作的。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-26-at-11.01.56-AM.png" class="kg-image" alt="Screenshot-2021-07-26-at-11.01.56-AM" width="600" height="400" loading="lazy"></figure><h3 id="--12">音乐爱好者的涂鸦游戏</h3><h4 id="--13">纪念奥斯卡·菲辛格</h4><p><a href="https://www.google.com/doodles/oskar-fischingers-117th-birthday">菲辛格</a>于 2017 年 6 月 17 日创建，以庆祝奥斯卡·菲辛格的 117 岁生日。</p><p>为了纪念这位电影制片人和视觉艺术家，谷歌发布了一个带有视觉音乐创作工具的互动设计，让用户点击并通过你可以改变的各种设置来创造自己的视觉音乐作品。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-25-at-7.47.35-PM.png" class="kg-image" alt="Screenshot-2021-07-25-at-7.47.35-PM" width="600" height="400" loading="lazy"></figure><h4 id="--14">纪念嘻哈音乐的诞生</h4><p><a href="https://www.google.com/doodles/44th-anniversary-of-the-birth-of-hip-hop">Hip Hop</a> 是为了纪念嘻哈音乐诞生 44 周年，于 2017 年 8 月 11 日发行的。</p><p>通过交叉推杆，你可以将传奇的节拍混合在一起，改变音量和播放速度的强度，并挑选曲目。经典的 DJ 互动转盘将让你切割和拖动曲目，重温嘻哈历史。</p><p>这款涂鸦由艺术家 Cey Adams 制作，并由嘻哈偶像 Fab Five Freddy 讲述。它向 Kool Herc 和 Coke La Rock 这两位嘻哈创始人致敬。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-26-at-10.38.20-AM.png" class="kg-image" alt="Screenshot-2021-07-26-at-10.38.20-AM" width="600" height="400" loading="lazy"></figure><h4 id="rockmore"><strong>Rockmore</strong></h4><p><a href="https://www.google.com/doodles/clara-rockmores-105th-birthday">Rockmore</a> 模拟了 Theremin 的体验。这是一种电子乐器，没有身体接触——只能通过手势控制。</p><p>该游戏在 2016 年 3 月 9 日庆祝 Clara Rockmore 105 岁生日，他是该乐器的发明者和最知名的演奏者。</p><p>它将让你创造音乐并尝试不同的设置和复制不同的音符。在屏幕上的音符上移动你的光标或鼠标，使用虚拟特雷门琴创作音乐。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-26-at-4.07.53-PM.png" class="kg-image" alt="Screenshot-2021-07-26-at-4.07.53-PM" width="600" height="400" loading="lazy"></figure><h3 id="--15">创意者的涂鸦游戏</h3><h4 id="--16">快速绘画</h4><p><a href="https://quickdraw.withgoogle.com/">Quick draw!</a> 是一个有自己网站的游戏。你会在屏幕上得到关于画什么的指示，并有 20 秒的时间来完成。然后谷歌的神经网络进行猜测，并告诉你你的画像什么。</p><p>这个游戏是用机器学习构建的，是最受欢迎的涂鸦游戏之一。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-25-at-7.53.52-PM.png" class="kg-image" alt="Screenshot-2021-07-25-at-7.53.52-PM" width="600" height="400" loading="lazy"></figure><h3 id="--17">科幻小说爱好者的涂鸦游戏</h3><h4 id="doctor-who"><strong>Doctor Who</strong></h4><p>2013 年 11 月 23 日发布的 <a href="https://www.google.com/doodles/doctor-whos-50th-anniversary">Doctor Who</a> 涂鸦游戏，是为了纪念英国经典和流行的电视节目《神秘博士》50 周年而制作。</p><p>这是一个简单但令人印象深刻的冒险解谜游戏，以当时所有的 13 位博士为主角。</p><p>游戏的目标是找回谷歌标志中所有的 6 个字母，这些字母是 Daleks 从博士们那里偷来的，要通过游戏的 6 个关卡。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-26-at-10.41.15-AM.png" class="kg-image" alt="Screenshot-2021-07-26-at-10.41.15-AM" width="600" height="400" loading="lazy"></figure><h3 id="--18"><strong>涂鸦食物游戏</strong></h3><p><a href="https://www.google.com/doodles/wilbur-scovilles-151st-birthday">Scoville</a> 于 2016 年 1 月 22 日发布，以庆祝 Wilbur Scoville 的 151 岁生日。</p><p>斯科维尔量表是一个衡量辣椒辣度的系统。在这个游戏中，你是一个冰激凌，通过向辣椒投掷勺子来对抗辛辣的辣椒。辣椒逐渐变得更辣。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-26-at-10.55.11-AM.png" class="kg-image" alt="Screenshot-2021-07-26-at-10.55.11-AM" width="600" height="400" loading="lazy"></figure><h3 id="--19">喜欢万圣节的人的涂鸦游戏</h3><h4 id="--20">魔法猫学院</h4><p><a href="https://www.google.com/doodles/halloween-2016">The Magic Cat Academy</a> 在 2016 年庆祝万圣节，讲述了一只名叫 Momo 的猫想要恢复她所在的魔法猫学院的和平，这样她就可以拯救学校。</p><p>这款游戏的缪斯是一只黑猫，它属于制作这款游戏的涂鸦者 Juliana Chen。</p><p>Momo 要在她的学校里经历 5 个关卡——图书馆、食堂、教室、体育馆和大楼屋顶。一路上，她要用魔杖在出现的鬼魂头顶上描画符号！这样，Momo 就可以施展魔法，不会被潜伏的鬼魂夺走她的魔法书。</p><p>用你的键盘在鬼魂的头顶上滑动，把它们变成稀薄的空气。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-26-at-3.39.40-PM.png" class="kg-image" alt="Screenshot-2021-07-26-at-3.39.40-PM" width="600" height="400" loading="lazy"></figure><h3 id="--21">喜欢纸牌游戏的人的涂鸦游戏</h3><h4 id="loteria"><strong>Loteria</strong></h4><p><a href="https://www.google.com/doodles/celebrating-loteria">Loteria</a> 是一种传统的墨西哥纸牌游戏。你可以与你的朋友或来自全球各地的随机人员开始比赛。</p><p>它于 2019 年 12 月 9 日发布，以虚拟版本的方式庆祝这一传统游戏。如果你以前没有玩过 Lotería，在你第一轮试玩之前可以看一个教程。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/07/Screenshot-2021-07-26-at-3.53.58-PM.png" class="kg-image" alt="Screenshot-2021-07-26-at-3.53.58-PM" width="600" height="400" loading="lazy"></figure><h2 id="--22"><strong>总结</strong></h2><p>我希望你喜欢这篇关于谷歌最受欢迎的涂鸦游戏的文章。</p><p>你可以在专门的<a href="https://www.google.com/doodles?q=interactive">存档网页</a>上查看更多，看你对什么感兴趣。</p><p>谢谢你阅读本文！</p><p>版权所有：所有图片属于谷歌公司</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 如何像专家一样高效使用 Google 搜索 ]]>
                </title>
                <description>
                    <![CDATA[ 你几乎可以在互联网上搜索到任何内容，而Google是大多数人选择搜索信息的主要途径之一。 尽管频繁地使用Google，但是大部分互联网用户都不知道如何快速和高效地使用Google搜索。 可以说使用Google是一门艺术。 想要获得正确的答案，你需要提出正确的问题。想要快速地获得正确的答案，你必须知道 如何  提正确的问题。 每一个人都应该学学这个实操（how）  部分，这也是一篇教程教学目的所在。 以下是一些提示和技巧，帮助你快速、高效地寻找到问题的正确答案。 如何高效地使用Google搜索 1. 使用引号来获得“完全一致”的匹配搜获 当我们按照惯常的习惯在Google上搜索的时候，实际上我们使用的是浅搜索。 这样得到的搜索结果可能会包括你的搜索查询里没有的词。 但如果你将自己的查询请求或者问题（词汇或者短语）用引号打包，像这样 —— "你的问题"，Google就会进入深度搜索模式。这样的搜索结果会包含所有 在引号内你的搜索问题里的词汇。 当你需要在搜索结果中呈现出某个特定的词汇或者短语的时候，这个方法就十分有用。 2. 使用 site:  在特定网站搜索 如果你希 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/how-to-google-like-a-pro-10-tips-for-effective-googling/</link>
                <guid isPermaLink="false">63528b30509503074debe446</guid>
                
                    <category>
                        <![CDATA[ Google ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ PapayaHUANG ]]>
                </dc:creator>
                <pubDate>Fri, 21 Oct 2022 08:19:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2022/10/Group-61.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文：</strong> <a href="https://www.freecodecamp.org/news/how-to-google-like-a-pro-10-tips-for-effective-googling/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Google like a Pro – 10 Tips for More Effective Googling</a>
      </p><!--kg-card-begin: markdown--><p>你几乎可以在互联网上搜索到任何内容，而Google是大多数人选择搜索信息的主要途径之一。</p>
<p>尽管频繁地使用Google，但是大部分互联网用户都不知道如何<strong>快速</strong>和<strong>高效</strong>地使用Google搜索。</p>
<p>可以说使用Google是一门艺术。</p>
<p>想要获得正确的答案，你需要提出正确的问题。想要快速地获得正确的答案，你必须知道 <strong>如何</strong> 提正确的问题。</p>
<p>每一个人都应该学学这个<strong>实操（how）</strong> 部分，这也是一篇教程教学目的所在。 以下是一些提示和技巧，帮助你快速、高效地寻找到问题的正确答案。</p>
<h2 id="google">如何高效地使用Google搜索</h2>
<h3 id="1">1. 使用引号来获得“完全一致”的匹配搜获</h3>
<p>当我们按照惯常的习惯在Google上搜索的时候，实际上我们使用的是<strong>浅</strong>搜索。 这样得到的搜索结果可能会包括你的搜索查询里没有的词。</p>
<p>但如果你将自己的查询请求或者问题（词汇或者短语）用引号打包，像这样 —— <code>"你的问题"</code>，Google就会进入深度搜索模式。这样的搜索结果会<strong>包含所有</strong>在引号内你的搜索问题里的词汇。</p>
<p>当你需要在搜索结果中呈现出某个特定的词汇或者短语的时候，这个方法就十分有用。</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/img1.PNG" alt="img1" width="600" height="400" loading="lazy"></p>
<h3 id="2site">2. 使用 <code>site:</code> 在特定网站搜索</h3>
<p>如果你希望Google返回的搜索结果是来自某个特定的网站，仅需要在你的搜索问题前添加<code>site:</code> 。</p>
<p>当你想要在某个没有内置搜索选项的网站，或者内置搜索不太好用的网站进行搜索的时候，这个方法可以派上用场。</p>
<p>假设，你的搜索问题是 <strong>site:freecodecamp.org react</strong>， 返回的搜索结果仅会是来自<a href="https://www.freecodecamp.org/">www.freecodecamp.org</a> 关于React的话题。</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/img2.PNG" alt="img2" width="600" height="400" loading="lazy"></p>
<h3 id="3">3. 使用<code>-</code>在搜索结果中排除某个词汇</h3>
<p>如果你不希望自己的搜索结果中出现某个词汇或者短语，可以在那个单词前添加 <code>-</code> 。</p>
<p>假设你的搜索内容是 =&gt; <strong>how to write components in React -class</strong>（如何编写React组件 -class），返回的搜索结果会不包含“class”。所以， (如果你了解一点React)，你会发现搜索结果只包含函数式组件。</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/img3.PNG" alt="img3" width="600" height="400" loading="lazy"></p>
<h3 id="4imagesize">4. 使用<code>imagesize:</code>搜索特定大小的图片</h3>
<p>如果你想搜索特定大小的图片，可以在你的搜索查询中使用<code>imagesize:</code>标签，并且标注好以<strong>pixels（像素）</strong> 为单位的宽和高。</p>
<p>尺寸仅以 <strong>pixels</strong> 为单位 – 例如：<code>imagesize:500x500</code>的搜索结果是尺寸为 500px x 500px的图片。 所以如果搜索查询是 =&gt; "cute dog images imagesize:500x600"（可爱小狗图片 imagesize：500*600）的搜索结果是尺寸为<code>500px x 600px</code>的可爱小狗的图片。</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/img4.PNG" alt="img4" width="600" height="400" loading="lazy"></p>
<h3 id="5filetype">5. 使用<code>filetype:</code>搜索特定文件类型</h3>
<p>如果你希望搜索的结果包含了某个特定的文件类型，如：PDF或者PPT，就可以添加<code>filetype:&lt;扩展名&gt;</code>（不需要尖括号）。 如，<strong>react tutorial filetype:pdf</strong>（react教学 filetype：pdf）的搜索结果是PDF格式的，如图：<br>
<img src="https://www.freecodecamp.org/news/content/images/2022/08/img5.PNG" alt="img5" width="600" height="400" loading="lazy"></p>
<h3 id="6">6. 在搜索中使用通配符<code>*</code></h3>
<p>如果你不确定搜索查询/问题或者忘记了其中的词汇，你可以在搜索中使用通配符<code>*</code>，Google会用相关的词汇来替换通配符。</p>
<p>例如，如果你搜索 =&gt; the * of money（钱的 *），会产生如下结果。 Google会返回一系列搜索页面，包括 "the <em>exchange</em> of money"（金钱交易）、 "the <em>use</em> of money"（金钱的用途）、 "the <em>role</em> of money"（金钱的角色）、 "the <em>psychology</em> of money"（金钱心理学）等。</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/img6.PNG" alt="img6" width="600" height="400" loading="lazy"></p>
<h3 id="7orand">7. 使用 <code>OR</code>（或）、 <code>AND</code>（且）逻辑合并搜索</h3>
<p>如果你希望搜索结果包含两个词汇，可以在其中使用<code>AND</code> 关键字。例如，你搜索=&gt; <strong>React AND Angular</strong>， Google会返回即包含React，又包含Angular的结果。</p>
<p>同样的，如果你希望搜索结果包含两个词汇中的任意一个， 可以在其中使用 <code>OR</code> 关键字。 例如，你搜索 =&gt; <strong>React OR Angular</strong>，Google会返回包含React或者Angular的结果，甚至包含两者的结果。</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/img7.PNG" alt="img7" width="600" height="400" loading="lazy"></p>
<h3 id="8afterbefore">8. 在两个数字间使用 <code>AFTER:</code>（在……之后）、 <code>BEFORE:</code>（在……之前） 或 <code>..</code> 来筛选结果</h3>
<p>如果你希望Google的搜索结果是发布在特定年份之后的，你可以使用<code>AFTER:</code>标签。例如，你搜索 =&gt; <strong>React tutorials AFTER:2020</strong>（React教程 AFTER：2020）会返回迟于2020年发布的结果。</p>
<p>同样的，如果添加<code>BEFORE:</code> 标签，会返回早于某个特定年份的结果。</p>
<p>你也可以搜索发布在某个年份范围内的结果，或者介于两个数字之间的任意事物。仅在两个数字之间添加 <code>..</code>即可，如果有计算单位，也可以添加计算单位。<br>
<img src="https://www.freecodecamp.org/news/content/images/2022/08/img8.PNG" alt="img8" width="600" height="400" loading="lazy"></p>
<h3 id="9related">9. 使用 <code>related:</code>查询相关网站</h3>
<p>如果你想知道和某个特定网站相关的其他网站，可以使用<code>related:</code>标签。</p>
<p>例如，你搜索 <strong>related:google.com</strong> 就会得到所有和Google类似的网站，如：Bing、Yahoo、DuckDuckGo等。</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/img9.PNG" alt="img9" width="600" height="400" loading="lazy"></p>
<h3 id="10cachegoogle">10. 使用<code>cache:</code>查看Google对某个网站的缓存版本</h3>
<p>Google提供网站的缓存版本以提高搜索速度。想要知道Google是否缓存了某个网站，可以在网站URL前面添加<code>cache:</code>。</p>
<p>这一招对于<strong>web开发</strong>来说非常管用，可以检查现在浏览的到底是Google缓存的网站，还是提交了一些修改之后的最近版本的网站。 例如，在写这篇教程的时候（2022年8月4日）搜索 =&gt; <strong>cache:www.sohamderoy.dev</strong> ，得到的结果如下：</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/img10a.png" alt="img10a" width="600" height="400" loading="lazy"></p>
<p>你可以看到，即便我是在2022年8月4日搜索这个网站，我得到的搜索结果是Google缓存的2022年8月3日的版本。</p>
<p>正如<a href="https://support.google.com/websearch/answer/2466433?visit_id=637790664879774647-1036329470&amp;p=adv_pages_similar&amp;hl=en&amp;rd=1">Google</a>自己描述的一样，我们必须知道“不是所有的搜索运算都会穷举所有结果。”</p>
<p>但我仍相信以上的方法可以帮助你提高使用Google搜索的效率。我希望我的解释足够清晰，并且在日后你能够将这些方法运用在日常的Google搜索中。</p>
<h2 id="">总结</h2>
<p>感谢阅读！希望你喜欢这篇关于提高Google搜索效率的简短教程。</p>
<p>希望你可以转发给自己的朋友——我将非常感谢。你可以在LinkedIn和Twitter上关注我的最新精彩内容！</p>
<h3 id="">社交媒体链接</h3>
<ul>
<li><a href="https://www.linkedin.com/feed/">LinkedIn</a></li>
<li><a href="https://www.sohamderoy.dev/">Website</a></li>
<li><a href="https://blogs.sohamderoy.dev">我的其他博文</a></li>
<li><a href="https://twitter.com/_sohamderoy">Twitter</a></li>
</ul>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 如何在 Google Chrome 中启用 Adob​​e Flash Player ]]>
                </title>
                <description>
                    <![CDATA[ 原文：How to Enable Adobe Flash Player in Google Chrome [https://www.freecodecamp.org/news/how-to-enable-adobe-flash-player-in-google-chrome/] ，作者：Abbey Rennemeyer [https://www.freecodecamp.org/news/author/abbey/] 还记得 Adob​​e Flash 播放器吗？正是这款漂亮的软件可以让网站嵌入视频和网络游戏。整个网站甚至可以由 Flash 驱动。 尽管 Flash 的使用率大幅下降，并且 Adob​​e 将于 2020 年停用该软件，但某些网站今天仍在使用它。如果你遇到其中一个网站，你可能会想看看该内容是什么。 在本教程中，我们将了解在 Chrome 中启用 Flash 播放器所需遵循的步骤。 如何在 Chrome 中启用 Flash 播放器 由于 Google Chrome 会自动禁用 Flash 播放器，因此如果你希望它工作，则需要启用它。 访问内容设置 由于 Chro ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/how-to-enable-adobe-flash-player-in-google-chrome/</link>
                <guid isPermaLink="false">62e77dc78d13aa0845c63610</guid>
                
                    <category>
                        <![CDATA[ Chrome ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Google ]]>
                    </category>
                
                    <category>
                        <![CDATA[ 谷歌 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Chengjun.L ]]>
                </dc:creator>
                <pubDate>Thu, 28 Jul 2022 07:20:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2022/08/5f9c9f86740569d1a4ca430d.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>原文：<a href="https://www.freecodecamp.org/news/how-to-enable-adobe-flash-player-in-google-chrome/">How to Enable Adobe Flash Player in Google Chrome</a>，作者：<a href="https://www.freecodecamp.org/news/author/abbey/">Abbey Rennemeyer</a></p><p>还记得 Adob​​e Flash 播放器吗？正是这款漂亮的软件可以让网站嵌入视频和网络游戏。整个网站甚至可以由 Flash 驱动。</p><p>尽管 Flash 的使用率大幅下降，并且 Adob​​e 将于 2020 年停用该软件，但某些网站今天仍在使用它。如果你遇到其中一个网站，你可能会想看看该内容是什么。</p><p>在本教程中，我们将了解在 Chrome 中启用 Flash 播放器所需遵循的步骤。</p><h2 id="-chrome-flash-">如何在 Chrome 中启用 Flash 播放器</h2><p>由于 Google Chrome 会自动禁用 Flash 播放器，因此如果你希望它工作，则需要启用它。</p><h3 id="-">访问内容设置</h3><p>由于 Chrome 有自己的内置 Flash 版本，因此你无需安装插件或任何东西。</p><p>进入 Chrome 设置的最简单方法是访问 <a href="chrome://settings/content">chrome://settings/content</a>。一旦你在那里，向下滚动，直到你看到 Flash 播放器的选项：</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2019/09/adobe-flash-chrome-settings.png" class="kg-image" alt="adobe-flash-chrome-settings" width="600" height="400" loading="lazy"><figcaption>向下滚动到 Flash，在 JavaScript 正下方</figcaption></figure><h3 id="-flash-">允许 Flash 运行</h3><p>单击 “Flash”，然后在显示 “Block sites from running Flash (recommended) 阻止站点运行 Flash（推荐）”的位置打开开关，你会看到 “Ask first”：</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2019/09/adobe-flash-allow.png" class="kg-image" alt="adobe-flash-allow" width="600" height="400" loading="lazy"><figcaption>Flash 会询问你是否允许它运行</figcaption></figure><p>现在，当你访问使用 Flash 的站点时，它会询问你是否要允许 Flash 执行其操作。仔细检查总是好的。</p><p>恭喜 - 你已经成功了一半。</p><h2 id="-flash--1">如何授予特定站点运行 Flash 的权限</h2><p>现在你已授予 Chrome 请求你允许使用 Flash 运行网站的权限（哇），你需要告诉它允许哪些网站。</p><h3 id="-flash--2">转到你最喜欢的使用 Flash 的站点</h3><p>让我们拥抱一个小孩子般的奇迹和魔法，好吗？迪士尼的<a href="https://disneyworld.disney.go.com/destinations/magic-kingdom/">魔法王国</a>网站使用 Flash，我们希望看到所有闪闪发光的魔法善意。</p><p>导航到该站点后，在地址栏中查找小灰色锁：</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2019/09/Adobe-flash-disney-homepage.png" class="kg-image" alt="Adobe-flash-disney-homepage" width="600" height="400" loading="lazy"><figcaption>迪士尼网站当然需要漂亮的动画......</figcaption></figure><h3 id="-flash--3">更新其 Flash 设置</h3><p>单击它，然后选择底部的 “Site settings 站点设置”：</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/09/adobe-flash-site-settings.png" class="kg-image" alt="adobe-flash-site-settings" width="600" height="400" loading="lazy"></figure><p>这将带你进入一个包含多个选项的菜单，你会看到 Flash。在右侧，你会看到一个下拉菜单，上面写着 “Block 阻止”。</p><p>要允许 Flash，你必须单击该下拉菜单并选择 “Allow 允许”：</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2019/09/adobe-flash-allow-flash.png" class="kg-image" alt="adobe-flash-allow-flash" width="600" height="400" loading="lazy"><figcaption>找到 Flash 设置并选择“允许”</figcaption></figure><p>现在，如果你再次在 Chrome 中检查你的 Flash 设置，你将在 “allowed 允许”列表中看到该站点：</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/09/adobe-flash-enabled.png" class="kg-image" alt="adobe-flash-enabled" width="600" height="400" loading="lazy"></figure><p>返回站点并重新加载页面，所有的 Flash 内容都会运行。</p><p>注意：如果你使用的是不认识的网站，Flash 容易出现安全漏洞，因此启用它时要小心。</p><p>最后一点：如果你关闭浏览器，下次要启用 Flash 时，你将不得不再次执行此过程。 Chrome 正在积极劝告用户不要启用 Flash，因此他们尽可能地让 Flash 变得烦人。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 如何使用 Google Sheets API 创建反馈表 ]]>
                </title>
                <description>
                    <![CDATA[ 原文：How to Create a Feedback Form using the Google Sheets API [https://www.freecodecamp.org/news/create-a-feedback-form-using-nextjs-and-google-sheets-api/] ，作者：Georgey V B [https://www.freecodecamp.org/news/author/georgey/] Google 表单提供了一种创建在线表单和收集用户数据的简单方法。在本教程中，我们将使用 Google Sheets 和 Next.js 来构建一个简单的表单。 我们将使用 Next.js 作为前端，使用 Google Sheets 作为后端，来发送我们通过表单接收到的数据。这样我们就可以学习如何使用 Next.js 和 Google Sheets 来构建一个简单的表单。 这是我们将在本教程中介绍的内容： 1. 如何在 Google Cloud Console 中创建新项目 2. 如何将新项目与 Google Sheet 连接 3. 如何在 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/create-a-feedback-form-using-nextjs-and-google-sheets-api/</link>
                <guid isPermaLink="false">614daaf696c25a0641857fca</guid>
                
                    <category>
                        <![CDATA[ Google ]]>
                    </category>
                
                    <category>
                        <![CDATA[ 表单 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Miya Liu ]]>
                </dc:creator>
                <pubDate>Thu, 28 Apr 2022 09:20:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2021/09/Build-a-feedback-form-using-Google-Sheets-API-3.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>原文：<a href="https://www.freecodecamp.org/news/create-a-feedback-form-using-nextjs-and-google-sheets-api/">How to Create a Feedback Form using the Google Sheets API</a>，作者：<a href="https://www.freecodecamp.org/news/author/georgey/">Georgey V B</a></p><p>Google 表单提供了一种创建在线表单和收集用户数据的简单方法。在本教程中，我们将使用 Google Sheets 和 Next.js 来构建一个简单的表单。</p><p>我们将使用 Next.js 作为前端，使用 Google Sheets 作为后端，来发送我们通过表单接收到的数据。这样我们就可以学习如何使用 Next.js 和 Google Sheets 来构建一个简单的表单。</p><p>这是我们将在本教程中介绍的内容：<br>1. 如何在 Google Cloud Console 中创建新项目<br>2. 如何将新项目与 Google Sheet 连接<br>3. 如何在 Next.js 应用程序中创建前端表单<br>4. 如何将表单连接到 Google Sheet</p><blockquote>为了帮助你理解，我创建了一个 <a href="https://github.com/GeoBrodas/nextjs-form-using-google-sheets-api">GitHub 仓库</a>，如果你有不清楚的地方，可以参考。</blockquote><h1 id="-google-cloud-console-">如何在 Google Cloud Console 中创建新项目</h1><p>要访问 Google Sheets API，我们首先需要在 Google Cloud Console 上创建一个新项目。访问这个<a href="https://cloud.google.com/">站点</a>，转到控制台并创建一个新项目。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/cloud-new.png" class="kg-image" alt="cloud-new" width="600" height="400" loading="lazy"></figure><p>创建新项目后，转到 <strong><strong>APIs and Services</strong></strong>，然后单击 <strong><strong>Enable APIs and Services</strong></strong>。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/cloud-enable.png" class="kg-image" alt="cloud-enable" width="600" height="400" loading="lazy"></figure><p>从库中搜索 Google Sheets 并启用它。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/enable-sheets-api.png" class="kg-image" alt="enable-sheets-api" width="600" height="400" loading="lazy"></figure><p>现在，转到 APIs and Services，点击 <strong><strong>Credentials</strong></strong>，然后点击 <strong><strong>New Credential</strong></strong>，创建一个新的 Service 账号。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/create-cred.png" class="kg-image" alt="create-cred" width="600" height="400" loading="lazy"></figure><p>给它一个合适的名字并填写所有细节。生成服务帐户后，将电子邮件 ID 复制到某处。之后我们需要将其添加到我们的 Google 表单中。我们刚刚创建了一个 Bot 帐户来处理将从前端发送的各种请求。</p><p>接下来，单击 <strong>Credentials</strong> 中的 Service account，然后将它们移至 <strong>Keys</strong>。单击 <strong><strong>Add Key</strong></strong>，确保将其设置为 JSON 格式。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/google_key.png" class="kg-image" alt="google_key" width="600" height="400" loading="lazy"></figure><p>创建新密钥时将下载一个文件，它包含我们将前端应用程序连接到 Google 表单时所需的所有环境变量。</p><h2 id="-google-sheet">如何将新项目连接到 Google Sheet</h2><p>现在让我们将 Google Cloud Console 上新创建的项目与 Google Sheet 连接起来。访问 <a href="http://sheets.google.com/">Google Sheets</a> 并创建一个新的电子表单。</p><p>在我们继续之前，请随意放入一些原始数据，以便我们在下一节中调用请求时可以获取一些内容。</p><p>完成后，单击 Share 并添加我们刚刚创建的服务帐户电子邮件。确保你授予它编辑器访问权限 <strong><strong>Editor access</strong></strong> 并取消 <strong><strong>Notify people</strong></strong>（选中通知人员）。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/share.png" class="kg-image" alt="share" width="600" height="400" loading="lazy"></figure><p>现在是有趣的部分。让我们转到代码编辑器并为我们的表单创建前端。</p><h2 id="-">如何创建前端表单</h2><p>为了构建前端，我们将使用 Next.js，并使用 API-routes 功能将 POST 请求发送到我们的 Google Sheet。</p><p>使用以下命令安装 Next：</p><pre><code class="language-bash">npx create-next-app
</code></pre><p>为了构建表单，并加快开发过程，我们将使用一些第三方包。所以继续安装以下内容：</p><pre><code class="language-bash">npm i @chakra-ui/react @emotion/react@^11 @emotion/styled@^11 framer-motion@^4 react-hook-form
</code></pre><ul><li>Chakra-UI：一个可访问的框架，它帮助我加快了大多数应用程序的前端设计。</li><li>React-Hook-Form：帮助你即时构建具有客户端验证的高效表单。</li></ul><p>在本教程中，我将更多地关注执行表单的功能，而不是构建客户端验证。<a href="https://react-hook-form.com/get-started#Applyvalidation">这里</a>是使用 <a href="https://react-hook-form.com/">React-Hook-Form</a> 添加客户端验证的完整指南。当然也可以随意访问 <a href="https://chakra-ui.com/docs/getting-started">Chakra-UI</a> 文档。</p><p>安装所有软件包后，使用任何代码编辑器打开它。在 Next.js 中，你在 <code>/pages</code> 文件夹中创建的每个文件都是一个单独的路由。你可以创建一个新文件，但在这里我将使用根文件本身，即 <code>/pages/index.js</code>。</p><p>清除所有预先生成的代码行。现在，让我们为 Form 创建一个基本结构。</p><pre><code class="language-js">import { VStack, Text, Input } from "@chakra-ui/react"

function Home () {
    function submitHandler () {
     // POST request
    }
    
    return (
        &lt;VStack&gt;
          &lt;Text fontSize="2xl" fontWeight="bold"&gt;
            Your response matters!
          &lt;/Text&gt;
          
          &lt;form onSubmit={submitHandler}&gt;
              &lt;Input placeholder="Enter Name" /&gt;
              &lt;Button&gt;Submit!&lt;/Button&gt;
          &lt;/form&gt;
        &lt;/VStack&gt;
    )
}
</code></pre><p>VStack 包含下方所有元素。这是 <code>flex-direction: column</code> 的简写。其余的代码应该是不言自明的。</p><p>Chakra-UI 的美妙之处在于它的每个组件都非常类似于 HTML 元素，大大减少了学习曲线。</p><p>你可以添加更多你选择的输入字段。这是最终结果：</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/form.png" class="kg-image" alt="form" width="600" height="400" loading="lazy"></figure><p>现在让我们处理用户提交时的表单响应。为此，我们将使用 <code>react-hook-form</code>。</p><p>为了从表单中获取响应，我们必须导入 <code>useForm</code> 钩子，如下所示：</p><pre><code class="language-js">import { useForm } from 'react-hook-form';
</code></pre><p>从钩子中，解构以下内容：</p><pre><code class="language-js">const {
    register,
    handleSubmit
  } = useForm();</code></pre><p>用 <code>handleSubmit</code> 包裹我们之前创建的 <code>submitHandler</code>：</p><pre><code class="language-js">&lt;form onSubmit={handleSubmit(submitHandler)}&gt;
   {/* Input fields here */}               
&lt;/form&gt;</code></pre><p>现在将 <code>register</code> 添加到所有输入字段，如下所示：</p><pre><code class="language-js">&lt;Input placeholder="Enter your message" {...register('name') /&gt;</code></pre><p>现在，当点击按钮时，我们应该能够看到输入的数据。只需将数据记录到控制台，如下所示：</p><pre><code class="language-js">function submitHandler (data) {
	console.log(data);
}</code></pre><p>完成后，让我们现在为要从表单发送的 POST 请求创建一个新的 API 路由。</p><h2 id="-google-sheet-1">如何将表单连接到 Google Sheet</h2><p>在 <code>./pages/api/</code> 路由中创建一个新文件。你在此路由中创建的每个文件都是一个 api-route，它提供对所有 Node.js 功能的访问。</p><p>继续在路由中创建一个新文件，比如 <code>./pages/api/sheet.js</code>。构建一个基本的 GET 请求，看看是否一切正常：</p><pre><code class="language-js">function handler (req, res) {
	res.json({message: "It works!"});
}

export default handler;</code></pre><p>要检查 API 请求此时是否有效，请转到 <code>http://localhost:3000/api/sheet</code>。</p><p>完成后，让我们首先使用本机 <code>Fetch</code> 方法设置要从前端发送的 POST 请求。</p><pre><code class="language-js">async function submitHandler (data) {
	const response = await fetch("/api/sheet", {
    		method: "POST",
        	body: JSON.stringify(data),
        	headers: {
        		'Content-Type': 'application/json',
      		},
    	})
}</code></pre><p>在做任何其他事情之前，我们必须下载另一个包：</p><pre><code class="language-bash">npm install googleapis</code></pre><p>在 API-route（<code>/pages/api/sheet</code>）上，解构我们从前端得到的数据。</p><pre><code class="language-js">import {google} from "googleapis"

async function handler (req, res) {
    if (req.method === "POST"){
    		const {name, message} = req.body;
		res.json({message: "It works!"});
    }
}

export default handler;</code></pre><p>注意：默认情况下，API 路由将侦听 GET 请求，所以我们必须明确地检查该方法是否是一个 POST 请求。</p><p>在继续之前，还有最后一件事要设置，那就是环境变量。在我们创建新密钥时，打开包含所有 credential 的 JSON 文件。</p><p>在根目录中创建一个新文件 <code>.env.local</code>，继续，并输入以下变量。</p><pre><code class="language-env">CLIENT_EMAIL=yourclientemail
CLIENT_ID=yourclientid
PRIVATE_KEY=yourprivatekey
SPREADSHEET_ID=yourspreadsheetid
</code></pre><p>完成后，我们几乎完成了设置 API 路由来处理我们将发送到 Google Sheet 的请求。首先，让我们创建一个身份验证令牌：</p><pre><code class="language-js">const auth = new google.auth.GoogleAuth({
    credentials: {
      client_email: process.env.CLIENT_EMAIL,
      client_id: process.env.CLIENT_ID,
      private_key: process.env.PRIVATE_KEY.replace(/\\n/g, '\n'),
    },
    scopes: [
      'https://www.googleapis.com/auth/drive',
      'https://www.googleapis.com/auth/drive.file',
      'https://www.googleapis.com/auth/spreadsheets',
    ],
  });
</code></pre><p>要访问 Google Sheet，我们的应用程序首先需要提供一些范围——通常是读写访问权限。</p><p>你可以在官方<a href="https://developers.google.com/sheets/api/guides/authorizing"> Google 表单文档</a>中找到有关范围的更多信息。</p><p>你可能想知道我在第三个环境变量中使用的 <code>replace</code> 方法。这是由于我之前遇到的一个典型错误。浏览 Stack Overflow 后，我终于找到了解决方案。看起来 <code>PRIVATE_KEY</code> 需要通过删除原始密钥中的斜杠来正确解析。这可以使用替换方法轻松解决。</p><p>你可以在我创建的这个<a href="https://github.com/leerob/leerob.io/pull/342">拉取请求</a>中找到这个错误。</p><p>接下来，传入身份验证令牌并指定 API 的版本。最新的是 v4。</p><pre><code class="language-js">const sheets = google.sheets({
    auth,
    version: 'v4',
  });</code></pre><p>然后我们调用 <code>spreadsheets.value.append</code> 方法将用户条目附加到电子表单的单元格中。</p><pre><code class="language-js">const response = await sheets.spreadsheets.values.append({
      spreadsheetId: process.env.DATABASE_ID,
      range: 'Sheet1!A2:C',
      valueInputOption: 'USER_ENTERED',
      requestBody: {
        values: [[name, message]],
      },
    });</code></pre><p>你可以从 URL 本身找到电子表单 ID：</p><pre><code class="language-url">https://docs.google.com/spreadsheets/d/{spreadsheetID}/edit#gid=0</code></pre><p>范围决定了应用程序必须读取或写入的行和列。如果你对如何查找范围感到困惑，你可以通过用户界面使用 Google 表单本身来确定它。</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/09/select_range.png" class="kg-image" alt="select_range" width="600" height="400" loading="lazy"></figure><p>第三个属性 <code>valueInputOption</code> 确定如何将用户输入的值解析到电子表单中。</p><p>例如，如果用户输入了一个数字，那么电子表单也会将其作为数字读取。</p><p>第四个属性携带要附加到特定单元格中的数据。要附加多个值，你可以将它们全部放在一个数组中，例如在这个示例下——名称和消息。</p><p>要结束 API 路由，最后将响应发送回前端：</p><pre><code class="language-js">res.status(201).json({response, result: "Feedback posted to spreadsheet!"})</code></pre><p>如果一切顺利，你应该能够发出 POST 请求，并成功地将新的单元格值添加到电子表单中。</p><h1 id="--1"><strong>总结</strong></h1><p>恭喜！你已准备好开始收集反馈。你可以在你的网站上创建自己的反馈表，或者你可以与现有服务（如 Typeform）集成。</p><p>但是如果你希望将反馈表保留在你的网站上，在你的页面上，这就是与 Google Sheets API 集成的用武之地。</p><p>Google Sheets API 非常基础——它可以读取和写入电子表格。此外，它是完全免费的，尽管你在特定时间范围内可以发出的 API 请求有限制。</p><p>因此，Google Sheets API 非常适合小型应用程序和受众较少的平台。如果你有任何问题，请在 <a href="https://twitter.com/BrodasGeo">Twitter</a> 上联系我。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 如何使用谷歌搜索——更快搜索到结果的小技巧 ]]>
                </title>
                <description>
                    <![CDATA[ 原文：How to Use Google – Search Tips for Better Results [https://www.freecodecamp.org/news/use-google-search-tips/]，作者：Marko Denic [https://www.freecodecamp.org/news/author/denicmarko/] 如果知道如何正确使用 Google，它就是世界上最强大的工具。让我们来看一下如何在谷歌搜索上做得更好。 1. 使用引号进行精确匹配搜索 可以使用引号来强制进行完全匹配搜索。如果确切知道要查找的搜索短语，这将非常有用。如果这样做，会只返回精确的结果。 "what is javascript" 2. 使用 AND 操作符 AND 操作符将仅返回与这两个术语都相关的结果。在下面的示例中，可以看到此操作符的用例。 html AND css 3. 使用 OR 操作符 可以使用 OR 操作符来获取与输入的搜索词任意一个相关的结果。 (javascript OR python) free course 4. 使 ]]>
                </description>
                <link>https://www.freecodecamp.org/chinese/news/use-google-search-tips/</link>
                <guid isPermaLink="false">624ab1e799ec7406219e558b</guid>
                
                    <category>
                        <![CDATA[ Google ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ ZhichengChen ]]>
                </dc:creator>
                <pubDate>Mon, 04 Apr 2022 05:30:00 +0000</pubDate>
                <media:content url="https://chinese.freecodecamp.org/news/content/images/2022/04/pexels-photomix-company-218717.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>原文：<a href="https://www.freecodecamp.org/news/use-google-search-tips/">How to Use Google – Search Tips for Better Results</a>，作者：<a href="https://www.freecodecamp.org/news/author/denicmarko/">Marko Denic</a></p><!--kg-card-begin: markdown--><p>如果知道如何正确使用 Google，它就是世界上最强大的工具。让我们来看一下如何在谷歌搜索上做得更好。</p>
<h2 id="1">1. 使用引号进行精确匹配搜索</h2>
<p>可以使用引号来强制进行完全匹配搜索。如果确切知道要查找的搜索短语，这将非常有用。如果这样做，会只返回精确的结果。</p>
<p><code>"what is javascript"</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-exact.PNG" alt="Google search exact match example" width="600" height="400" loading="lazy"></p>
<h2 id="2and">2. 使用 AND 操作符</h2>
<p>AND 操作符将仅返回与这两个术语都相关的结果。在下面的示例中，可以看到此操作符的用例。</p>
<p><code>html AND css</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-and.PNG" alt="Google search with AND keyword" width="600" height="400" loading="lazy"></p>
<h2 id="3or">3. 使用 OR 操作符</h2>
<p>可以使用 OR 操作符来获取与输入的搜索词任意一个相关的结果。</p>
<p><code>(javascript OR python) free course</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-or.PNG" alt="Google search OR keyword example" width="600" height="400" loading="lazy"></p>
<h2 id="4">4. 使用 -（减号）操作符</h2>
<p>- 运算符将排除相关术语或短语的结果。在下面的例子中，想要获得与 JavaScript 相关的结果，但排除任何包含的 CSS 结果。</p>
<p><code>javascript -css</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-minus.PNG" alt="Google search with - operator example" width="600" height="400" loading="lazy"></p>
<h2 id="5">5. 使用 (*) 通配符作为占位符</h2>
<p>可以使用 (*) 通配符作为占位符，它将被任何单词或短语替换。</p>
<p>这个是我的最爱。当我大概知道整个搜索短语并用星号替换我不知道的部分时，我会使用它。 超级好用。</p>
<p><code>"how to start * in 6 months"</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-wildcard.PNG" alt="Google search with wildcard example" width="600" height="400" loading="lazy"></p>
<h2 id="6">6. 如何在指定网站内搜索</h2>
<p>这也是我经常使用的方式。如果我只想在指定网站上搜索某些内容，我会这样做。</p>
<p><code>site:freecodecamp.org</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-site.PNG" alt="Google search inside a single website example" width="600" height="400" loading="lazy"></p>
<h2 id="7">7. 如何查找特定文件类型</h2>
<p>还可以使用这个非常有用的功能来帮助找到特定的文件类型。如果正在寻找诸如 PDF 之类的材料，它会很方便。如果以前没有使用过它，那么从现在开始使用它吧。</p>
<p><code>filetype:pdf learn css</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-filetype.PNG" alt="Google search for specific filetype" width="600" height="400" loading="lazy"></p>
<h2 id="8">8.  如何搜索一个范围内的数字</h2>
<p>这可以是任何东西。如果想购买特定价格区间的商品，或者正在搜索包含特定年份范围的结果，那么这很好用。</p>
<p><code>ecmascript 2016..2018</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-range.PNG" alt="Google search for specific range of numbers" width="600" height="400" loading="lazy"></p>
<h2 id="9before">9. 使用 <code>before</code> 操作符</h2>
<p>使用 before 操作符可以只返回给定日期之前的结果。</p>
<p>必须提供年-月-日格式的日期或仅提供年，例如：</p>
<p><code>javascript before:2020</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-before.png" alt="Google search with before operator" width="600" height="400" loading="lazy"></p>
<h2 id="10after">10. 使用 <code>after</code> 操作符</h2>
<p>使用 after 操作符仅返回给定日期之后的结果。必须提供年-月-日格式日期或仅提供年。如果想排除过时的结果，则非常有用。</p>
<p><code>web development after:2020</code></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/07/google-after.png" alt="Google search with after operator" width="600" height="400" loading="lazy"></p>
<p>如你所见，如果知道如何正确使用它，Google 可以成为一个强大的工具。</p>
<p>如果有任何问题，可以在 <a href="https://twitter.com/denicmarko">Twitter</a> 上与我联系。</p>
<p>也可以在我的 <a href="https://markodenic.com/blog/">博客</a> 上找到大量实际工作中用到的技巧和资源。</p>
<!--kg-card-end: markdown--> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
