这是我参与「第四届青训营 」笔记创作活动的第4天 今天看项目源码的时候,发现了不少 vue.nextTick 正好打开掘金的时候首页也给我推出来了。那就好好学习一下
小计
首先是看到的一个不错写法的小计 vue-element-admin登录界面的代码有一个密码输入框睁眼闭眼的功能,用了绑定inputType,点击改变data值,再通过三元表达式,控制icon的样式
this.$nextTick(() => {
this.$refs.password.focus();
});
Vue.nextTick()
首先我们要注意几点
- vue中数据发生变化后,dom并不会立刻跟着改变,会按照一定的规则策略,异步执行dom的变化。(数据变化dom不立刻变)
- 使用
vue。nextTick()可以让这里面的代码异步执行,数据变化,接着dom变化,最后再执行这里的异步代码。使里面得到的代码获取的数据是最新的 - 其实一句话就可以把
$nextTick这个东西讲明白:就是你放在$nextTick当中的操作不会立即执行,而是等数据更新、DOM更新完成之后再执行,这样我们拿到的肯定就是最新的了。
例如下面的代码,当我们在代码中修改了其他值,例如在上面方法中修改了passwordType, 但紧接着在下面打印值时,出现的是原来未修改的值
但使用vue.nextTick后会获取到修改后的值。
项目思考
最近要做一个低代码平台,对于我这个以前只写过页面项目的人来说挑战还是不小的。 构思了一下项目的需要
-
页面组成
- 功能栏
- 组件库
- 画布
- 属性及动画修改栏
-
功能
- 从组件库到画布的拖拽功能
- 画布上组件的显示功能
- 从画布点击,对应右侧修改属性
- 给画布上的组件添加对应的动画
- 功能栏,撤销,保存,返回,到处,清空等等
-
难点
- 组件之间的传值
- 组件数据的存储
- 拖拽功能的实现
- 动画过程的美化
- 各个组件之间冒泡的发生
任重道远啊,希望可以在这段时间里面交出一份自己满意的项目把