{"id":2344,"date":"2019-05-04T20:16:34","date_gmt":"2019-05-04T12:16:34","guid":{"rendered":"https:\/\/ai.zhousir.top\/?p=2344"},"modified":"2026-08-18T12:35:22","modified_gmt":"2026-08-18T04:35:22","slug":"2019-%e5%b9%b4-web-%e5%bc%80%e5%8f%91%e6%8a%80%e6%9c%af%e6%8c%87%e5%8d%97%e5%92%8c%e8%b6%8b%e5%8a%bf","status":"publish","type":"post","link":"https:\/\/ai.zhousir.top\/?p=2344","title":{"rendered":"2019 \u5e74 Web \u5f00\u53d1\u6280\u672f\u6307\u5357\u548c\u8d8b\u52bf"},"content":{"rendered":"<section id=\"wenyan\" style=\"font-family: system-ui, 'Apple Color Emoji', 'Segoe UI', 'Segoe UI Symbol', 'Noto Sans', Roboto, sans-serif; line-height: 1.75; font-size: 16px; color: #000000; caret-color: #000000;\" data-provider=\"WenYan\">\n<p style=\"margin: 1em 0px;\">\u8fd9\u662f\u4e00\u4efd 2019 \u5e74\u6210\u4e3a\u524d\u7aef\u3001\u540e\u7aef\u6216\u5168\u6808\u5f00\u53d1\u8005\u7684\u8fdb\u9636\u6307\u5357\uff1a\u4f60\u4e0d\u5fc5\u5b66\u5b8c\u6240\u6709\u6280\u672f\uff1b\u4e0b\u9762\u53ea\u662f\u6309\u7c7b\u522b\u5217\u51fa\u9009\u9879\uff0c\u5e76\u52a0\u4e0a\u4f5c\u8005\u7ecf\u9a8c\u548c\u5f53\u65f6\u8d8b\u52bf\u3002\u5148\u8bb2\u901a\u7528\u57fa\u7840\uff0c\u6700\u540e\u624d\u662f 2019 \u7684\u65b0\u540d\u8bcd\u3002<\/p>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u4e0d\u5fc5\u5b66\u4f1a\u6240\u6709\u6280\u672f\u624d\u80fd\u5f53 Web \u5f00\u53d1\u8005<\/section>\n<\/li>\n<li>\n<section>\u6307\u5357\u53ea\u662f\u7b80\u5355\u5206\u7c7b\u5217\u51fa\u6280\u672f\u9009\u9879<\/section>\n<\/li>\n<li>\n<section>\u5efa\u8bae\u6765\u81ea\u4f5c\u8005\u7ecf\u9a8c\u548c\u53c2\u8003\u8d44\u6599<\/section>\n<\/li>\n<li>\n<section>\u5148\u901a\u7528\u77e5\u8bc6\uff0c\u518d\u770b 2019 \u8d8b\u52bf<\/section>\n<\/li>\n<\/ul>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e00\u3001\u57fa\u7840\u524d\u7aef\u5f00\u53d1\u8005<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.1 HTML \u4e0e CSS<\/h3>\n<p><a href=\"https:\/\/ai.zhousir.top\/wp-content\/uploads\/2019\/05\/d35053967bc9d5418784cbf9f7683a78.png\" rel=\"fancybox\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-2343\" src=\"https:\/\/ai.zhousir.top\/wp-content\/uploads\/2019\/05\/d35053967bc9d5418784cbf9f7683a78.png\" alt=\"d35053967bc9d5418784cbf9f7683a78\" width=\"800\" height=\"447\"><\/a><\/p>\n<p style=\"margin: 1em 0px;\">\u6700\u57fa\u7840\u7684\u77e5\u8bc6\uff1a<\/p>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u8bed\u4e49\u5316 HTML \u5143\u7d20<\/section>\n<\/li>\n<li>\n<section>\u57fa\u7840 CSS \u8bed\u6cd5<\/section>\n<\/li>\n<li>\n<section>Flexbox \u4e0e Grid<\/section>\n<\/li>\n<li>\n<section>CSS \u53d8\u91cf<\/section>\n<\/li>\n<li>\n<section>\u6d4f\u89c8\u5668\u5f00\u53d1\u8005\u5de5\u5177<\/section>\n<\/li>\n<\/ul>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.2 \u54cd\u5e94\u5f0f\u5e03\u5c40<\/h3>\n<p style=\"margin: 1em 0px;\">\u54cd\u5e94\u5f0f\u4e0d\u518d\u662f\u52a0\u5206\u9879\uff0c\u800c\u662f\u5fc5\u987b\uff1a<\/p>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u8bbe\u7f6e viewport<\/section>\n<\/li>\n<li>\n<section>\u975e\u56fa\u5b9a\u5bbd\u5ea6<\/section>\n<\/li>\n<li>\n<section>\u5a92\u4f53\u67e5\u8be2<\/section>\n<\/li>\n<li>\n<section>\u7528 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">rem<\/code> \u66ff\u4ee3 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">px<\/code><\/section>\n<\/li>\n<li>\n<section>\u79fb\u52a8\u4f18\u5148\uff0c\u67f1\u72b6\u663e\u793a<\/section>\n<\/li>\n<\/ul>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.3 \u57fa\u7840\u90e8\u7f72<\/h3>\n<p style=\"margin: 1em 0px;\">\u5b66\u4f1a\u628a\u9759\u6001\u7f51\u7ad9\u90e8\u7f72\u5230\u670d\u52a1\u5668\uff1a<\/p>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u6ce8\u518c\u57df\u540d\uff08NameCheap, Google Domains\uff09<\/section>\n<\/li>\n<li>\n<section>\u7ba1\u7406\u5171\u4eab\u4e3b\u673a\u6216\u865a\u62df\u673a\uff08Inmotion, Hostgator, Bluehost\uff09<\/section>\n<\/li>\n<li>\n<section>FTP \/ SFTP \u4e0a\u4f20\uff08Filezilla, Cyberduck\uff09<\/section>\n<\/li>\n<li>\n<section>\u9759\u6001\u6258\u7ba1\uff08Netlify, GitHub Pages\uff09<\/section>\n<\/li>\n<\/ul>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.4 SASS \u9884\u5904\u7406\u5668<\/h3>\n<p style=\"margin: 1em 0px;\">\u4e0d\u662f\u5fc5\u987b\uff0c\u4f46\u63a8\u8350\u5b66\uff0c\u57fa\u7840\u5e76\u4e0d\u96be\uff1a\u7ed3\u6784\u5316 CSS\u3001\u53d8\u91cf\u3001\u5d4c\u5957\u3001Mixins \u4e0e\u51fd\u6570\u3001\u7ee7\u627f\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.5 \u539f\u751f JavaScript<\/h3>\n<p style=\"margin: 1em 0px;\">\u4e0d\u9760\u6846\u67b6\u5148\u628a\u539f\u751f\u8bed\u6cd5\u5b66\u624e\u5b9e\uff08\u539f\u6587\u201c\u51d1\u603b\u5e9c\u201d\u5e94\u4e3a\u64cd\u4f5c\u7b26\uff09\uff1a<\/p>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u6570\u636e\u7c7b\u578b\u3001\u51fd\u6570\u3001\u6761\u4ef6\u3001\u5faa\u73af\u3001\u64cd\u4f5c\u7b26<\/section>\n<\/li>\n<li>\n<section>DOM \u64cd\u4f5c\u548c\u4e8b\u4ef6<\/section>\n<\/li>\n<li>\n<section>JSON<\/section>\n<\/li>\n<li>\n<section>Fetch<\/section>\n<\/li>\n<li>\n<section>ES6+\uff1a\u7bad\u5934\u51fd\u6570\u3001Promise\u3001async\/await\u3001\u89e3\u6784<\/section>\n<\/li>\n<\/ul>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">1.6 \u8fd9\u4e00\u6863\u80fd\u505a\u4ec0\u4e48<\/h3>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u6784\u5efa\u9759\u6001\u7ad9\u70b9<\/section>\n<\/li>\n<li>\n<section>\u6309\u8bbe\u8ba1\u56fe\u7528 HTML\/CSS \u8fd8\u539f UI<\/section>\n<\/li>\n<li>\n<section>\u52a0\u4e00\u4e9b\u4ea4\u4e92<\/section>\n<\/li>\n<li>\n<section>\u90e8\u7f72\u548c\u7ef4\u62a4\u7f51\u7ad9<\/section>\n<\/li>\n<\/ul>\n<p style=\"margin: 1em 0px;\">\u8fd9\u65f6\u80fd\u627e\u5230\u5165\u95e8\u7ea7 Web \u5de5\u4f5c\uff0c\u4f46\u8fdc\u8fdc\u4e0d\u591f\u3002<\/p>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e8c\u3001\u6210\u719f\u7684\u524d\u7aef\u5f00\u53d1\u8005<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.1 HTML \/ CSS \u6846\u67b6<\/h3>\n<p style=\"margin: 1em 0px;\">\u6846\u67b6\u6ca1\u6709 jQuery \u65f6\u4ee3\u90a3\u4e48\u201c\u5fc5\u987b\u201d\uff0c\u4f46\u4ecd\u5efa\u8bae\u9009\u4e00\u4e2a\u5b66\uff1aBootstrap\u3001Materialize\u3001Bulma\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.2 Git \u4e0e\u5de5\u4f5c\u6d41<\/h3>\n<p style=\"margin: 1em 0px;\">Git \u662f\u6bcf\u4e2a Web \u5f00\u53d1\u8005\u5fc5\u987b\u638c\u63e1\u7684\u3002\u8fd8\u8981\u4f1a\uff1a<\/p>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u57fa\u7840\u547d\u4ee4\u884c\uff1a<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">touch<\/code>\u3001<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">cd<\/code>\u3001<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">mkdir<\/code><\/section>\n<\/li>\n<li>\n<section>Git \u7248\u672c\u63a7\u5236<\/section>\n<\/li>\n<li>\n<section>NPM \u6216 Yarn<\/section>\n<\/li>\n<li>\n<section>Webpack \u6216 Parcel<\/section>\n<\/li>\n<li>\n<section>Gulp \u6216 Grunt<\/section>\n<\/li>\n<li>\n<section>\u7f16\u8f91\u5668\u63d2\u4ef6\uff1aESLint\u3001Prettier\u3001Live Server<\/section>\n<\/li>\n<\/ul>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.3 \u524d\u7aef\u6846\u67b6<\/h3>\n<p style=\"margin: 1em 0px;\">\u5b66\u4e00\u4e2a\u6846\u67b6\u5728\u5f53\u65f6\u5df2\u662f\u5fc5\u987b\uff1a\u5927\u516c\u53f8\u6d41\u884c\u3001\u4ea4\u4e92\u548c\u7ec4\u4ef6\u66f4\u591a\u3001\u7ec4\u4ef6\u5316\u6a21\u5757\u5316\u3001\u5229\u4e8e\u56e2\u961f\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.4 \u72b6\u6001\u7ba1\u7406<\/h3>\n<p style=\"margin: 1em 0px;\">\u5927\u578b\u6846\u67b6\u9879\u76ee\u5f80\u5f80\u8981\u5e94\u7528\u7ea7\u72b6\u6001\uff1aRedux\uff08Context API\uff09\u3001Apollo\uff08GraphQL Client\uff09\u3001Vuex\u3001NgRx\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">2.5 \u8fd9\u4e00\u6863\u80fd\u505a\u4ec0\u4e48<\/h3>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u6784\u5efa\u5b8c\u6574\u524d\u7aef\u5e94\u7528<\/section>\n<\/li>\n<li>\n<section>\u6d41\u7545\u7a33\u5b9a\u7684\u524d\u7aef\u5de5\u4f5c\u6d41<\/section>\n<\/li>\n<li>\n<section>\u591a\u4eba\u534f\u4f5c\u5e76\u719f\u7ec3\u4f7f\u7528 Git<\/section>\n<\/li>\n<li>\n<section>\u8bf7\u6c42\u540e\u7aef API \u5e76\u505a\u6570\u636e\u54cd\u5e94<\/section>\n<\/li>\n<\/ul>\n<p style=\"margin: 1em 0px;\">\u6ee1\u8db3\u4ee5\u4e0a\u6761\u4ef6\uff0c\u53ef\u4ee5\u987a\u5229\u627e\u5230\u524d\u7aef\u5de5\u4f5c\u5e76\u5e72\u5f97\u51fa\u8272\u3002<\/p>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e09\u3001\u5168\u6808\u5f00\u53d1\u5de5\u7a0b\u5e08<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.1 \u4e00\u95e8\u540e\u7aef\u8bed\u8a00<\/h3>\n<p style=\"margin: 1em 0px;\">\u9009\u9879\uff1aNode.js\u3001Python\u3001PHP\u3001C#\u3001Go\u3002\u5b66\u4e60\u987a\u5e8f\uff1a\u57fa\u7840\u8bed\u6cd5 \u2192 \u6570\u636e\u7ed3\u6784\u548c\u5de5\u4f5c\u6d41 \u2192 \u5305\u7ba1\u7406 \u2192 HTTP \/ \u8def\u7531\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.2 \u670d\u52a1\u7aef\u6846\u67b6<\/h3>\n<p style=\"margin: 1em 0px;\">\u4e0d\u8981\u91cd\u590d\u9020\u8f6e\u5b50\uff1aNode\uff08Express, Koa, Adonis\uff09\u3001Python\uff08Django, Flask\uff09\u3001PHP\uff08Laravel, Symfony\uff09\u3001C#\uff08ASP.NET\uff09\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.3 \u6570\u636e\u5e93<\/h3>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u5173\u7cfb\u578b\uff1aMySQL, PostgreSQL, MS SQL<\/section>\n<\/li>\n<li>\n<section>\u975e\u5173\u7cfb\u578b\uff1aMongoDB, Couchbase\uff08\u539f\u6587 Counchbase\uff09<\/section>\n<\/li>\n<li>\n<section>\u4e91\u670d\u52a1\uff1aFirebase, AWS, Azure, DocumentDB<\/section>\n<\/li>\n<li>\n<section>\u8f7b\u91cf\uff1aSQLite, NeDB, Redis<\/section>\n<\/li>\n<\/ul>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.4 \u670d\u52a1\u7aef\u6e32\u67d3<\/h3>\n<p style=\"margin: 1em 0px;\">React \/ Vue \/ Angular \u90fd\u53ef\u4ee5 SSR\uff1aNext.js\u3001Nuxt\u3001Angular Universal\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.5 CMS<\/h3>\n<p style=\"margin: 1em 0px;\">\u9002\u5408\u5feb\u901f\u5f00\u53d1\u548c\u8ba9\u5ba2\u6237\u81ea\u5df1\u6539\u5185\u5bb9\uff0c\u5bf9\u81ea\u7531\u5f00\u53d1\u8005\u5c24\u5176\u6709\u7528\uff1aWordPress \/ Drupal\uff08PHP\uff09\uff0cGhost \/ Keystone\uff08JS\uff09\uff0cMezzanine\uff08Python\uff0c\u539f\u6587 Mezzazine\uff09\uff0cPiranha \/ Orchard\uff08.NET\uff09\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.6 DevOps \u4e0e\u90e8\u7f72<\/h3>\n<p style=\"margin: 1em 0px;\">\u4f1a\u5199\u4ee3\u7801\u662f\u4e00\u56de\u4e8b\uff0c\u88c5\u73af\u5883\u3001\u6d4b\u8bd5\u3001\u4e0a\u7ebf\u662f\u53e6\u4e00\u56de\u4e8b\uff1a<\/p>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u90e8\u7f72\uff1aLinux, SSH, Git, Nginx, Apache<\/section>\n<\/li>\n<li>\n<section>\u5e73\u53f0\uff1aDigitalOcean, AWS, Heroku, Azure<\/section>\n<\/li>\n<li>\n<section>\u865a\u62df\u5316\uff1aDocker, Vagrant<\/section>\n<\/li>\n<li>\n<section>\u6d4b\u8bd5\uff1a\u5355\u5143\u3001\u96c6\u6210\u3001\u51fd\u6570\u5f0f\u3001\u7cfb\u7edf\u6d4b\u8bd5<\/section>\n<\/li>\n<\/ul>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">3.7 \u8fd9\u4e00\u6863\u80fd\u505a\u4ec0\u4e48<\/h3>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>\u642d\u5168\u6808\u73af\u5883\u548c\u5de5\u4f5c\u6d41<\/section>\n<\/li>\n<li>\n<section>\u505a\u540e\u7aef API \u548c\u5fae\u670d\u52a1<\/section>\n<\/li>\n<li>\n<section>\u6570\u636e\u5e93\u64cd\u4f5c<\/section>\n<\/li>\n<li>\n<section>\u72ec\u7acb\u5b8c\u6210\u524d\u7aef + \u670d\u52a1\u7aef<\/section>\n<\/li>\n<li>\n<section>\u90e8\u7f72\u5230\u4e91\uff08SSH, Git, Servers\uff09<\/section>\n<\/li>\n<\/ul>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u56db\u30012019 \u6280\u672f\u8d8b\u52bf<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.1 \u539f\u751f\u5e94\u7528<\/h3>\n<ul style=\"padding-left: 1rem; margin-left: 1rem; font-size: 0.9rem; list-style-type: disc;\">\n<li>\n<section>React Native<\/section>\n<\/li>\n<li>\n<section>NativeScript\uff08\u539f\u6587 NativeScirpt\uff09<\/section>\n<\/li>\n<li>\n<section>Ionic \u6df7\u5408\u5e94\u7528<\/section>\n<\/li>\n<li>\n<section>Flutter\uff08Dart\uff09<\/section>\n<\/li>\n<li>\n<section>Xamarin\uff08C#\uff09<\/section>\n<\/li>\n<\/ul>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.2 Electron \u684c\u9762\u5e94\u7528<\/h3>\n<p style=\"margin: 1em 0px;\">\u7528 JavaScript \u505a\u8de8\u5e73\u53f0\u684c\u9762\u8f6f\u4ef6\uff1aChromium + Node.js\uff0c\u517c\u5bb9 Windows \/ Mac \/ Linux\uff0c\u5e26\u5d29\u6e83\u62a5\u544a\u3001\u8c03\u8bd5\u548c\u6027\u80fd\u5206\u6790\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.3 GraphQL \u4e0e Apollo<\/h3>\n<p style=\"margin: 1em 0px;\">GraphQL \u662f\u4e00\u79cd\u66f4\u4e25\u683c\u7684 API \u67e5\u8be2\u8bed\u8a00\uff08\u539f\u6587 RESET \u5e94\u4e3a REST\uff09\uff1a\u53ea\u67e5\u60f3\u8981\u7684\u5b57\u6bb5\uff0c\u524d\u540e\u7aef\u66f4\u597d\u534f\u4f5c\uff0c\u67e5\u8be2\u5f88\u50cf JSON\u3002Apollo \u662f\u53d1\u8bf7\u6c42\u7684\u5ba2\u6237\u7aef\uff1b\u5f53\u65f6\u4e5f\u5e38\u548c Gatsby \u9759\u6001\u7ad9\u70b9\u751f\u6210\u5668\u4e00\u8d77\u51fa\u73b0\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.4 TypeScript<\/h3>\n<p style=\"margin: 1em 0px;\">JavaScript \u8d85\u96c6\uff0c\u52a0\u9759\u6001\u7c7b\u578b\u3001\u7c7b\u548c\u4e00\u6279 ES6 \u80fd\u529b\u3002Angular \u6807\u914d\uff0c\u4e5f\u80fd\u7528\u5728 React\u3001Vue\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.5 \u65e0\u670d\u52a1\u67b6\u6784<\/h3>\n<p style=\"margin: 1em 0px;\">\u4e0d\u5fc5\u81ea\u5df1\u7ba1\u670d\u52a1\u5668\uff0c\u628a\u51fd\u6570\u4ea4\u7ed9 AWS\u3001Netlify\u3001Firebase\uff1b\u5728 Gatsby \u573a\u666f\u91cc\u5f88\u5e38\u89c1\uff0c\u4e5f\u6709 Serverless \u6846\u67b6\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.6 AI \u4e0e\u673a\u5668\u5b66\u4e60<\/h3>\n<p style=\"margin: 1em 0px;\">Web \u91cc\u4e5f\u4f1a\u51fa\u73b0\u53ef\u968f\u65f6\u95f4\u8c03\u6574\u7684\u6a21\u578b\u3002\u591a\u6570\u751f\u6001\u5728 Python\uff0c\u4f46\u4e5f\u6709 TensorFlow.js\u3001Brain.js\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.7 \u533a\u5757\u94fe<\/h3>\n<p style=\"margin: 1em 0px;\">Solidity \u667a\u80fd\u5408\u7ea6\u3001Mist \u4ee5\u592a\u574a\u6d4f\u89c8\u5668\u3001\u6bd4\u7279\u5e01 API\uff0c\u7528\u6765\u505a\u66f4\u5b89\u5168\u7684\u6570\u5b57\u4ea4\u6613\u76f8\u5173\u5e94\u7528\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.8 PWA<\/h3>\n<p style=\"margin: 1em 0px;\">Progressive Web Apps\uff1a\u54cd\u5e94\u5f0f\u3001\u53ef\u79bb\u7ebf\u3001\u7c7b App \u4ea4\u4e92\u3001HTTPS\uff0c\u8ffd\u6c42\u53ef\u9760\u3001\u8fc5\u901f\u3001\u66f4\u597d\u3002<\/p>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">4.9 WebAssembly<\/h3>\n<p style=\"margin: 1em 0px;\">\u7c7b\u4f3c\u6c47\u7f16\u7684\u4e8c\u8fdb\u5236\uff0c\u6d4f\u89c8\u5668\u53ef\u6267\u884c\uff0c\u53ef\u7528 C\/C++\u3001Rust \u7f16\u5199\uff1a\u6bd4 JS \u66f4\u5feb\uff0c\u53d7\u540c\u6e90\u548c\u5b89\u5168\u7b56\u7565\u7ea6\u675f\uff0c\u5f00\u653e\u53ef\u8c03\u8bd5\u3002<\/p>\n<table style=\"display: table; text-align: left; overflow: auto; border-collapse: collapse; margin: 1.4em auto; max-width: 100%; table-layout: fixed; overflow-wrap: break-word; word-break: break-all;\" width=\"800\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u9636\u6bb5<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u6838\u5fc3\u80fd\u529b<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u6807\u5fd7\u4ea7\u51fa<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u57fa\u7840\u524d\u7aef<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">HTML\/CSS\/JS + \u54cd\u5e94\u5f0f + \u9759\u6001\u90e8\u7f72<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u80fd\u4e0a\u7ebf\u7684\u9759\u6001\u7ad9<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u6210\u719f\u524d\u7aef<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u6846\u67b6 + Git + \u6253\u5305 + \u72b6\u6001<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u534f\u4f5c\u7684 SPA<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5168\u6808<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u540e\u7aef\u8bed\u8a00 + \u6846\u67b6 + \u5e93 + DevOps<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u72ec\u7acb\u4e0a\u7ebf\u7684\u5b8c\u6574\u5e94\u7528<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">2019 \u8d8b\u52bf<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">TS \/ GraphQL \/ PWA \/ WASM \/ \u65e0\u670d\u52a1<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u6309\u9879\u76ee\u9009\uff0c\u4e0d\u5fc5\u5168\u5b66<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"margin: 1em 0px;\">\u66f4\u591a\u7ec6\u8282\u89c1 Youtube \u89c6\u9891\uff1a<a href=\"https:\/\/www.youtube.com\/watch?v=UnTQVlqmDQ0&amp;t=18s\" rel=\"nofollow noreferrer\">Web Development in 2019<\/a>\u3002\u539f\u6587\u51fa\u5904\uff1a<a href=\"https:\/\/segmentfault.com\/a\/1190000017483325\" target=\"_blank\" rel=\"noopener\">\u674e\u68e0\u8f89<\/a>\u3002<\/p>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\">\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a2019 \u7684\u8def\u5f84\u4ecd\u662f\u5148\u6253\u597d HTML\/CSS\/JS\uff0c\u518d\u7cbe\u8fdb\u4e00\u4e2a\u6846\u67b6\u548c Git \u5de5\u4f5c\u6d41\uff0c\u5168\u6808\u518d\u8865\u4e00\u95e8\u540e\u7aef\uff1b\u65b0\u8d8b\u52bf\u6309\u9879\u76ee\u9700\u8981\u6361\uff0c\u800c\u4e0d\u662f\u4e00\u6b21\u5b66\u5b8c\u3002<\/strong><\/p>\n<\/blockquote>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u662f\u4e00\u4efd 2019 \u5e74\u6210\u4e3a\u524d\u7aef\u3001\u540e\u7aef\u6216\u5168\u6808\u5f00\u53d1\u8005\u7684\u8fdb\u9636\u6307\u5357\uff1a\u4f60\u4e0d\u5fc5\u5b66\u5b8c\u6240\u6709\u6280\u672f\uff1b\u4e0b\u9762\u53ea\u662f\u6309\u7c7b\u522b\u5217\u51fa\u9009\u9879\uff0c\u5e76\u52a0\u4e0a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[105],"tags":[150],"_links":{"self":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2344"}],"collection":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2344"}],"version-history":[{"count":3,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2344\/revisions"}],"predecessor-version":[{"id":3514,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2344\/revisions\/3514"}],"wp:attachment":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}