V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Hopetree
V2EX  ›  Vue.js

感谢昨天大家的帮助,我的 vue 小项目上线了,给你们看看成品,然后继续提问

  •  
  •   Hopetree ·
    Hopetree · 2019-09-03 21:42:42 +08:00 · 5275 次点击
    这是一个创建于 1940 天前的主题,其中的信息可能已经有所发展或是发生改变。

    接昨天的求助贴 https://www.v2ex.com/t/597355#reply42

    昨天提问之后被批了一顿,但是也有很多人给出了非常好的建议和提示,经过这个求助贴,我对 vue 的一些属性和方法的用途还有应该使用的场景又有了新的认知和理解。

    我这个小项目其实就是打算写一个导航页,包括一个搜索组件和一个网址列表,要说很简单,但是为了学习 vue,我把这个看似简单的项目尽量把 vue 全家桶用上,目前用到了下面这几个

      "dependencies": {
        "axios": "^0.19.0",
        "element-ui": "^2.12.0",
        "vue": "^2.5.2",
        "vue-router": "^3.0.1",
        "vuex": "^3.1.1"
      },
    

    昨天由于那个异步请求放到计算属性中的事故,被很多人教育了一番,让我好好看 js 的基础用法,其实我并不是搞前端的,但是想“掌握”一个前端框架,这个“掌握”的意思大概就是能了解基本用法,能写成实际的东西(只是会用),所以说,我并不想去深入 js,所以直接上手先写东西,边写边学,我倒觉得这种学习方式我很喜欢,因为你如果一直在学新东西但是根本没有去用,那你很难在实际中理解一个功能的用法,而如果是先有需求和问题,然后带着需求和问题去找解决办法,我觉得效果可能更好。

    简单来说,我喜欢“用以致学”而非“学以致用”

    然后,下面这个是我目前的搜索组件,基本完成我要的功能了,但是还有几个问题搞不定

    nABbMq.png

    项目上线了,调戏网址:https://hao.tendcode.com/

    然后是 GitHub 项目代码: https://github.com/Hopetree/hao

    如果有空,还请各位大佬继续指出问题,先感谢一波。

    然后,现在是提问环节,还请有空的大佬继续帮忙看看啊(下拉用的 element-ui 的 el-autocomplete 组件):

    1. [需求] 怎么让推荐词的下拉框缩回去的时候更快?最好是失去输入框焦点的时候下拉可以马上消失
    2. [需求] 怎么可以在 handleSelect 函数(下拉选择的回调函数)中直接触发 form 表单的 action 事件?或者说怎么触发 button 的点击事件?我目前是拼出了跳转的地址,然后进行跳转,如下
    3. [需求] 还有一个需求,就是百度的输入框里面是当你的输入还在输入法中,没有真正到输入框中的时候(就是中文输入的时候)就触发了 input 的变化事件,如何做到这一点?

    nAyYFO.png

    14 条回复    2019-09-04 15:50:52 +08:00
    zazalu
        1
    zazalu  
       2019-09-03 22:37:50 +08:00 via Android
    点 google 的时候会重复弹出下拉框
    Hopetree
        2
    Hopetree  
    OP
       2019-09-03 22:48:41 +08:00
    第二个需求,我用的.submit(),但是发现有个问题,提交的 input 的内容不是下拉框中的内容,而是 input 输入的内容,而且我就是让 sctext 变成了下拉选择的也不行,很奇怪

    ![nA7ZRI.png]( https://s2.ax1x.com/2019/09/03/nA7ZRI.png)
    Hopetree
        3
    Hopetree  
    OP
       2019-09-03 22:52:12 +08:00
    @zazalu 你说的下拉是指的左边那个还是推荐词,我都没有发现问题啊
    VancleefL
        4
    VancleefL  
       2019-09-03 23:04:17 +08:00
    需求 2:触发 button 的点击事件可以用$ref 把 button 的 dom 节点暴露出来,简单来说<button ref="submit"/>然后你就可以通过 this.$refs.submit.click()来触发点击
    需求 3:用 watch 监听 input 输入框的 value 的变化,注意做防抖
    我是菜鸡,以上回复如果没有帮到你可以再回复。
    另外我觉得编程还是要知其所以然好一点,出了 bug 也可以根据自己的理解快速排查
    Baymaxbowen
        5
    Baymaxbowen  
       2019-09-03 23:48:26 +08:00 via Android
    @Hopetree 左侧 select 选中后会再自动展开无论点哪个搜索引擎都一样的
    Hopetree
        6
    Hopetree  
    OP
       2019-09-04 00:28:49 +08:00
    @Baymaxbowen 这个本来就是这样的,左边选搜索引擎不是点击才会下拉,而是鼠标滑过就可以
    zazalu
        7
    zazalu  
       2019-09-04 06:53:56 +08:00 via Android
    @Hopetree 左边选择搜索工具,选 google 放开手指后,自己又会弹一遍
    LyleRockkk
        8
    LyleRockkk  
       2019-09-04 09:11:45 +08:00
    需求 3,别人百度就是这样子,肯定是用户体验考验了的,不需要改吧
    Kusoku
        9
    Kusoku  
       2019-09-04 09:14:25 +08:00
    第一个可以取消过渡效果,transform
    第二个用 ref
    第三个监听键盘事件可以做到模拟但是没必要,实际要考虑的东西比较多
    roryzh
        10
    roryzh  
       2019-09-04 09:19:54 +08:00
    ...这是神恶魔项目
    LeeSeoung
        11
    LeeSeoung  
       2019-09-04 09:57:02 +08:00
    1、v-show
    2、参考上面 ref
    3、dispatchevent 或者直接调用函数啊,没太仔细看。
    version0
        12
    version0  
       2019-09-04 11:46:47 +08:00 via Android
    提示词咋取的,所有搜索引擎都一样呢
    eluotao
        13
    eluotao  
       2019-09-04 15:28:16 +08:00
    dogedoge 搜索没有 减 10 分 哈哈
    Hopetree
        14
    Hopetree  
    OP
       2019-09-04 15:50:52 +08:00
    @version0 提示词是百度的接口,不会根据选择的引擎去变动接口的(虽然可以实现,但没必要)
    @eluotao 马上安排还不行吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3024 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:33 · PVG 22:33 · LAX 06:33 · JFK 09:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.