第一次写 Web 页面 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
nekocode
V2EX    程序员

第一次写 Web 页面

  •  
  •   nekocode
    nekocode 2018-02-23 17:37:13 +08:00 5048 次点击
    这是一个创建于 2795 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前一直没接触过前端开发,最近终于尝试写了个简单的页面 nekocode.cn/project-gallery,没用任何框架纯手写 Html / Css / Js。 个人感觉是 Js 的标准库很弱啊,很多常见的工作都没有提供官方接口(导致 JQuery 这类库的出现)。

    而且现在前端开发明显是工具 & 框架为王的时代吧?感觉脱离工具和框架想开发复杂点的应用太难了。


    另求推荐比较小而美的前端开发 工具 /技术 栈。

    38 条回复    2018-02-25 02:39:29 +08:00
    fangchang
        1
    fangchang  
       2018-02-23 17:43:57 +08:00
    vuejs + semantic ui
    TabGre
        2
    TabGre  
       2018-02-23 17:47:22 +08:00
    React 全家桶
    xmsz
        3
    xmsz  
       2018-02-23 17:49:39 +08:00
    说真的
    我现在开发一个页面不是单页东西的流程就是

    git 一个项目
    本地一个 clone
    vs code 新建一个 html
    然后引入
    zepto vue 的 cdn

    大概 2 分钟环境就有了


    ---
    然后打开 vs code 的 live code
    完美达到效果

    ---
    而且不需要要任何环境因素
    brickyang
        4
    brickyang  
       2018-02-23 19:25:58 +08:00
    能否举几个「常见的工作都没有提供官方接口」的例子?

    推荐 React 全家桶。

    但,「小」的前端框架工具栈是不存在的。
    yanqing07
        5
    yanqing07  
       2018-02-23 19:51:26 +08:00
    我推荐 angular4-5 (逃
    murmur
        6
    murmur  
       2018-02-23 19:54:35 +08:00
    第一次推荐 react 的是什么心态
    vue 上不上 vuex 都很简单
    react 上不上 redux 和 rxjs 是 随机、H、M 的难度区别
    plqws
        7
    plqws  
       2018-02-23 20:00:32 +08:00
    用 Vue 足矣,Vuex Redux 什么的都是项目上了规模才可能会用得到的。
    另外根本不需要 Zepto 啊 jQuery 啊,只要搞懂双向绑定和 MVVM 就行了,楼主搞安卓开发的弄明白这些个东西不会难的
    Kilerd
        8
    Kilerd  
       2018-02-23 20:12:53 +08:00
    @murmur 我看 Vue 看了几次,自己写都不知道从何写起。React 一次过,写起来极其流畅。
    oswuhan
        9
    oswuhan  
       2018-02-23 20:28:41 +08:00   1
    PO 主先看一下回答问题的人有多少是从事前端开发的。

    前端开发通常都是在解决类似这样的问题
    t/431475

    负责任的说,这类问题与开发工具、技术栈的选择关系并不大,关键还是解决问题的思路。

    思路从何而来?

    除了 C/S 开发的基础知识以外,WEB 开发基础的重中之重是 CSS 的 BFC、ES5 的相关特性、浏览器端 DOM 与 js 解析器等等……掌握这些知识,才有想出思路的可能。

    当然,有人会说,碰到类似的问题完全可以搜索相关的插件、框架、库等工具,把别人的轮子拿来用即可,何必自己造轮子?

    外人看来你是在造轮子,其实你是在构建自己的整车生产车间。买轮子的人,买完轮子还得买其它零件,东拼西凑一通,就跟印度阿三的“万国军”一样,看起来很气派无比,实则不堪一击。

    至于 jq/git/node/vue/ng/react/webpack......主要还是用来提升开发效率,提升程序的健壮性等等。
    oswuhan
        10
    oswuhan  
       2018-02-23 20:32:02 +08:00
    @Kilerd 做前端的难点在于写什么,而不是怎么写,用户总是更青睐新鲜的事物,后端可以重用,前端必须不断推陈出新
    murmur
        11
    murmur  
       2018-02-23 20:39:35 +08:00
    @oswuhan 更新鲜的事物不等于最新的技术
    jquery 也可以做出很赞的设计 而且这部分偏偏是纯前端做不到的 各种动画 banner 必须得有美工和交互设计师
    现在的审美都被 apple 毁了 盲目追寻扁平化设计 什么网站都是 bs 风格 nav+logo+文字 /图 /文字 /图。。。。
    murmur
        12
    murmur  
       2018-02-23 20:40:56 +08:00
    @Kilerd 你应该选一个好点的脚手架
    oswuhan
        13
    oswuhan  
       2018-02-23 20:45:44 +08:00
    @murmur

    误解我了,我的新鲜事物不是指的技术,而是指的包括视觉、操作在内的感官体验,前端开发者必须假设用户不懂技术才能开发出让用户满意的作品。

    你后说的问题我之前再 v2 与人讨论过。要想在感官体验让用户满意,关键还是在于相关设计规范的制定与实施,参与角色除了设计师、前端程序员以外,还得有知识面同时覆盖设计与前端的规范制定者与监督者。
    oswuhan
        14
    oswuhan  
       2018-02-23 20:50:42 +08:00
    @murmur

    我#10 的重点在“做前端的难点在于写什么”这句话上,用别人的思路只会写出与别人的雷同的东西,工具只能用来提升工作效率,而不能用来替代思考、创造的过程
    nekocode
        15
    nekocode  
    OP
       2018-02-23 20:53:45 +08:00
    @brickyang 例如 jquery 里的 hasClass() 这类方法。

    @murmur @plqws 看了下 react 和 vue 的对比,其实我挺喜欢 jsx,但感觉 vue 学习成本低一些。

    @oswuhan 我明白你想表达什么,但你这样说了等于没说。。我就想选个适合尝试的框架而已

    还有就是,像 mithril.js 还有 rio.js 这类更小的框架有人用过么?
    zhwithsweet
        16
    zhwithsweet  
       2018-02-23 21:01:48 +08:00 via iPhone
    原生有个 classList api 可以搞定你说的 hasClass 问题。
    react 写起来非常舒服,vue 在某种意义上是写配置,当然我工作主力是 vue。
    司徒正妹有个 miniReact 非常小。
    最后,真正爱编程的人,是不会满足搞前端的。奋战在前端一线大多是我这种野路子程序员。
    (十分想提高技术,逃
    brickyang
        17
    brickyang  
       2018-02-23 21:04:37 +08:00 via iPhone
    oswuhan
        18
    oswuhan  
       2018-02-23 21:05:18 +08:00
    @nekocode

    那就直接点: 框架选主流的,真正商用的项目不会固定采用一种技术方案,该重构的时候就重构;

    react 和 vue 本质上没啥区别,都是将发展多年的前端开发思想、策略、原理、模式、算法封装为了一套工具栈,侧重点不同而已,要想活学活用工具,还是得看懂背后的思想、策略、原理、模式、算法,并且还是绕不过我#9 说的问题……
    murmur
        19
    murmur  
       2018-02-23 21:05:30 +08:00
    @nekocode jsx 只是一个比较垃圾的 template 比(请注意有些人不要来纠正我,对于我来说如果你不玩花样这就是 template 而且还不如 template 完善,比如缺少重要的 for 和 if 标签,也不要吹你的 es6 语法多牛逼)
    我在意的是 redux 和 rxjs
    去掉 redux 和 rxjs 这俩完全是白菜和萝卜的区别
    oswuhan
        20
    oswuhan  
       2018-02-23 21:09:45 +08:00
    @nekocode

    浏览器端 API 统一是大趋势,外加 MV*架构与单项数据流、双向绑定等思想的普及,以及移动端 web 先天性优势,jq 退出历史的舞台是迟早的事情。
    murmur
        21
    murmur  
       2018-02-23 21:17:06 +08:00
    @oswuhan 除非啥时候安卓的性能能追评到 ipx 那个流畅性
    目前 mvvm 在移动端上 batch insert 是硬伤
    而在 jquery 时代一个 template 轻松搞定
    nekocode
        22
    nekocode  
    OP
       2018-02-23 21:18:00 +08:00
    @brickyang 感谢!我之前 Google 的时候没找到这方法,搜到的都是用正则来匹配 className 的。。

    @oswuhan jq 就是方便操作 dom 而已吧,但现在都流行双向绑定、vdom 什么的,都不需要手动操作 dom 了。
    oswuhan
        23
    oswuhan  
       2018-02-23 21:20:23 +08:00
    @murmur

    2018 年了,兄 dei,不跟你争了……时间倒退 5 年,谁不认同你的观点我愿意陪你一起喷
    nekocode
        24
    nekocode  
    OP
       2018-02-23 21:22:24 +08:00
    @murmur 我也想在前端用上 rx。所以可以 vue + vuex + rxjs 这样选么?
    oswuhan
        25
    oswuhan  
       2018-02-23 21:25:39 +08:00
    @nekocode

    我就是这个意思,不需要操作 dom,jq 迟早要退……另外,我推荐你看下《高程》,有几个章节专门介绍包括 classList 在内的很多 API,尤其是那些搜索引擎搜不到,搜到了但没有解释清楚,而主流框架底层依赖很普遍的 API
    murmur
        26
    murmur  
       2018-02-23 21:34:21 +08:00
    @oswuhan 我们在用小米 4 做最低的性能测试 安卓 4.4 我认为这是底线了
    前几天有要求兼容安卓 4.2 的红米推了好久才推掉
    而小米 4 下渲染七八十个 node 的页面 vue 已经很卡了 每个元素都是 createElement 即便是虚拟 dom 都都明显的卡顿
    oswuhan
        27
    oswuhan  
       2018-02-23 21:39:26 +08:00
    @nekocode @murmur

    解析 jsx 的那个库叫作 ReactDOM,前端眼中的视图是由 DOM 渲染而来的,是动态的 Object,有状态,有属性,可以绑定事件……而 template 是用来渲染静态视图,渲染的过程本质上是由模板字符串渲染为 HTML 字符串。

    所以,两个概念完全不同。
    murmur
        28
    murmur  
       2018-02-23 21:40:50 +08:00
    @oswuhan 干着和 template 一样的事但是还不如 template 好使 我这么理解可以么 你写成了 jsx 语法糖 这种类 html 语法
    相比之下还是 vue 的 template 部分更人性一些
    你这么说 vue 的.vue 里的 template 段也可以先编译成 js 语句啊
    oswuhan
        29
    oswuhan  
       2018-02-23 21:51:32 +08:00
    @murmur

    #28 新年快乐,有机会再聊
    brickyang
        30
    brickyang  
       2018-02-23 23:07:04 +08:00 via iPhone
    @nekocode Javascript 发展很快。也不是说应该完全不用 jQuery,但也推荐你试试 React 和 ES6,可能会发现和写 HTML+jQuery 完全不是一种开发方式。都试试没坏处。

    另外,大量操作 DOM 还是原生最快,无论是 React 还是什么库都不行。

    每种工具都有它要解决的问题,不是盲目堆工具就好。
    nekocode
        31
    nekocode  
    OP
       2018-02-23 23:33:27 +08:00
    @brickyang 嗯谢谢,准备尝试下。
    slgz
        32
    slgz  
       2018-02-24 13:23:35 +08:00
    @oswuhan 前端的工作写什么。 难道,不是应该由设计师和产品经理制定的吗,前端,只要把图片变成网页就行了吧。至于其他,美化什么管前端什么事,各司其职
    nekocode
        33
    nekocode  
    OP
       2018-02-24 13:40:51 +08:00   1
    @slgz 个人感觉越先进的公司,职位之间的界限是越模糊的。例如在知乎,只研究产品需求的纯产品经理是特别少,更多的是产品设计师、产品数据师等。
    前端 & 后端、前端 & UI / 交互设计、前端 & 可视化 等都是同理。

    国外的公司应该更加如此,全栈的工程师会需求更大。
    hiroya
        34
    hiroya  
       2018-02-24 13:46:51 +08:00   2
    js 标准库并不弱,我自己的网站用的也是原生。你需要的一个艺术家的点子 /设计。
    现在都被各种框架如同 react/vue/ng 这样的框架吸引了,这些框架的确很优秀,但是这些库并不完全适合所有的网站开发。这些只是为解决数据交互流的开发痛点而产生。

    而看题主的意思我猜只是想做一些漂亮点的网页,这些完全用不到楼上很多人说的 mvvm 框架,原生或者 jQuery 足够了,可以看看一些小众网站,设计得比较漂亮的网站 ex: http://slow-start.com/ 这种大量都是原生 css 和 js,如果题主想做的更炫酷网站的话,mo.js 或者 three.js 这种 WebGL 库

    如果题主的意思是寻找 mini 的前端库主要做数据交互流的话 react 写了用 preact 来代替打包,同样非常小巧。github 用户 egoist 写的前端库也是非常小巧,基本都是 kb 级别的。
    slgz
        35
    slgz  
       2018-02-24 16:32:49 +08:00
    @nekocode 看来还是我见识少呀,我一直以为,大公司往往都是分的很细。只有小公司才是全栈
    oswuhan
        36
    oswuhan  
       2018-02-24 16:59:15 +08:00
    @slgz

    #32 你的理解没有什么不对,我再补充一下,设计师出设计稿(包括视觉和交互),前端输出代码,难就难在两者殊途同归,换句话说就是前端需要精确还原设计稿,包括但不仅限于布局、样式、动画等等。

    #35 此“全栈”特指思想上的“全栈”,而非“技术”上的全栈。举一个例子,产品设计师确定产品采用响应式设计(设计规范),设计师负责实现具体的响应式设计(视觉稿),前端负责将视觉稿转化为响应式设计的网页(代码)。该流程中,产品和设计师不用写代码,前端不需要作图,但在“响应式设计”这个问题上,三个角色思想一致,最终输出的产品才不会有偏差。
    slgz
        37
    slgz  
       2018-02-24 17:08:46 +08:00
    @oswuhan 明白了,通俗的讲都是万精油角色咯。只不过,不需要去做实现,但是要知道什么意思。 关于这个观点,我表示赞同,毕竟,现在 IT 行业,如果只会一个领域找工作都难。hh
    ericgui
        38
    ericgui  
       2018-02-25 02:39:29 +08:00
    @Kilerd 我也是,我实在看不懂 Vue
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     805 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:07 PVG 05:07 LAX 14:07 JFK 17:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86