url 传值的 key 名,用_(下划线)还是-(横杠)呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kmvan
V2EX    程序员

url 传值的 key 名,用_(下划线)还是-(横杠)呢?

  •  
      kmvan 2014-09-02 16:49:59 +08:00 17586 次点击
    这是一个创建于 4106 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://xx.com/?my_book=xx
    http://xx.com/?my-book=xx

    上面两个情况,挺纠结的,感觉挺难选择的。如果配合 css 的命名方式,应该 xx-xx 横杠看起来比较统一吧。但如果配合 PHP 或 JS 的变量名,那就是 xx_xx 比较好。

    大家是怎么选择风格统一的方案?
    21 条回复    2014-09-03 19:52:28 +08:00
    rrfeng
        1
    rrfeng  
       2014-09-02 16:53:44 +08:00
    都不要最好
    nashsu
        2
    nashsu  
       2014-09-02 16:57:04 +08:00
    下划线吧
    seki
        3
    seki  
       2014-09-02 16:57:59 +08:00
    我觉得都不要最好

    Google 表示他们用 sourceid 这样子的,也用 es_sm 这样子的
    kmvan
        4
    kmvan  
    OP
       2014-09-02 17:03:16 +08:00
    @rrfeng 不要分隔符的话,那就不符合 css 命名规范了。从 HTML 的角度来看,data 属性例如:<div data-post-id="xxx"> ,这个 data 属性的命名方式,是 w3 规范来的,但它对应的 JQ 方法居然是这样: jQuery('div').data('postId'),XX症病人看着就略微蛋疼啊。
    seki
        5
    seki  
       2014-09-02 17:07:59 +08:00
    @kmvan url 的规范不是应该去看看 HTTP 的吗,和 HTML 关系不大吧
    kmvan
        6
    kmvan  
    OP
       2014-09-02 17:11:37 +08:00
    @seki HTTP规范没推荐中划线还是下划线呢,那 HTML 来说,只是为了配合 html 的写法而已。纠结啊
    bayuwei2010
        7
    bayuwei2010  
       2014-09-02 17:41:51 +08:00
    用下划线吧,更像 identifier 一些。
    感觉到处用都把握一些。
    ffffwh
        8
    ffffwh  
       2014-09-02 17:48:37 +08:00
    -杠好输入嘛。lisp都是-。
    tychio
        9
    tychio  
       2014-09-02 17:56:32 +08:00
    双击一下就会发现,下划线等于一个词,横杠等于两个词,个人理解,横杠连接变量,而下划线在变量内连接英文单词,相当于空格。所以建议使用下划线吧
    XadillaX
        10
    XadillaX  
       2014-09-02 18:27:51 +08:00
    js 我用的都是小驼峰。
    gihnius
        11
    gihnius  
       2014-09-02 18:59:32 +08:00
    URL 里面避免使用下划线!http://blog.woorank.com/2013/04/underscores-in-urls-why-are-they-not-recommended/ 没有足够说服力,但个人觉得 "-" 比 "_" 好些
    cbsw
        12
    cbsw  
       2014-09-02 20:46:37 +08:00
    横杠比较好,url 是给所有人看的,普通大众应该更容易看横杠连接的词,另外好多大站都是用横杠,例如 stack overflow
    rrfeng
        14
    rrfeng  
       2014-09-02 21:18:40 +08:00
    按我见的话,- 比较多,_ 少。相对而言。

    确实也不知道有什么相关文档推荐,但是 domain 里是明确不用 _ 的……
    kmvan
        15
    kmvan  
    OP
       2014-09-02 21:39:07 +08:00
    @tychio 这个应该是编辑器软件的问题。就算不是编辑器,在ff上,双击带下划线的url,也只能选中被下划线分隔的单词。而且编辑器的话,能调整双击忽略横杠的哦~

    总结各位朋友的结论:url使用横杠,比下划线体验好,看起来没这么显眼,比下划线舒服。
    RoshanWu
        16
    RoshanWu  
       2014-09-03 00:02:48 +08:00
    关注一下,我也一直在纠结。还有文件与文件夹的命名,是下划线好好是横杠好的?
    举例:
    下划线:bower_components node_modules ...
    横杠:grunt-contrib-clean sublime-jekyll ...
    20150517
        17
    20150517  
       2014-09-03 02:36:08 +08:00 via Android
    不要用,url不是给人看的,是给程序看的,html,css是给前台读的,所以要有易读性
    yfdyh000
        18
    yfdyh000  
       2014-09-03 07:50:01 +08:00
    下划线比较好。
    我认为下划线是空格的占位符(连接和避开特殊用途),而横杠是英文中的连字号(标记合成词)。

    用驼峰或者纯小写也都可以,只要看着顺畅。
    不过我觉得驼峰会过于吸引注意力,而纯小写的前提是参数名别太长。
    Honwhy
        19
    Honwhy  
       2014-09-03 09:09:02 +08:00
    http://get.jobdeer.com/343.get
    这篇HTTP API设计指南建议使用短折。
    nanpuyue
        20
    nanpuyue  
       2014-09-03 11:02:10 +08:00
    貌似都有道理,感觉都可以,只要前后统一就好。
    siteshen
        21
    siteshen  
       2014-09-03 19:52:28 +08:00
    @kmvan 下划线还是减号,这个其实是API命名规范的问题,和html/csss本身没有什么关系,所以更多时候要参考后端的意见。
    我个人而言,是会用下划线的。form中,只有name需要用下划线,与css的class,id之类使用减号并不冲突(与我的强迫症属性也不冲突……)。
    <input name="source_id">

    即使是要处理data属性也没问题的:
    <div class="source-id" data-source-id="1024">关注</div>

    // js
    var source_id = $('.source-id').data('source-id');
    $.post(url, {'source_id': source_id}, function() {});
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2633 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 14:37 PVG 22:37 LAX 06:37 JFK 09:37
    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