vue.nextTick+知识小计+项目思考 | 青训营笔记

231 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第4天 今天看项目源码的时候,发现了不少 vue.nextTick 正好打开掘金的时候首页也给我推出来了。那就好好学习一下

小计

首先是看到的一个不错写法的小计 vue-element-admin登录界面的代码有一个密码输入框睁眼闭眼的功能,用了绑定inputType,点击改变data值,再通过三元表达式,控制icon的样式

image.png

      this.$nextTick(() => {
        this.$refs.password.focus();
      });

Vue.nextTick()

首先我们要注意几点

  • vue中数据发生变化后,dom并不会立刻跟着改变,会按照一定的规则策略,异步执行dom的变化。(数据变化dom不立刻变)
  • 使用 vue。nextTick()可以让这里面的代码异步执行,数据变化,接着dom变化,最后再执行这里的异步代码。使里面得到的代码获取的数据是最新的
  • 其实一句话就可以把$nextTick这个东西讲明白:就是你放在$nextTick 当中的操作不会立即执行,而是等数据更新、DOM更新完成之后再执行,这样我们拿到的肯定就是最新的了。

例如下面的代码,当我们在代码中修改了其他值,例如在上面方法中修改了passwordType, 但紧接着在下面打印值时,出现的是原来未修改的值

但使用vue.nextTick后会获取到修改后的值。 image.png

项目思考

最近要做一个低代码平台,对于我这个以前只写过页面项目的人来说挑战还是不小的。 构思了一下项目的需要

  • 页面组成

    • 功能栏
    • 组件库
    • 画布
    • 属性及动画修改栏
  • 功能

    • 从组件库到画布的拖拽功能
    • 画布上组件的显示功能
    • 从画布点击,对应右侧修改属性
    • 给画布上的组件添加对应的动画
    • 功能栏,撤销,保存,返回,到处,清空等等
  • 难点

    • 组件之间的传值
    • 组件数据的存储
    • 拖拽功能的实现
    • 动画过程的美化
    • 各个组件之间冒泡的发生

任重道远啊,希望可以在这段时间里面交出一份自己满意的项目把