发布了文章2023-02-21
Vue2 使用Object.defineProperty()创建响应式属性,初始化时,除了遍历props和data的每个属性,还会深度遍历子对象和子数组,重新定义它们的属性,并创建如Observer和Dep实例,来观察属性变化,并且Object.defineProperty()重写的get和set方法也是挂载在实例上。深度...
发布了文章2023-02-17
Vue 的实现原理是基于数据驱动视图的方式,即采用数据响应式原理,当数据发生变化时,驱动视图动态更新,实现双向绑定和单向数据流。其中包括响应式系统、模板引擎与虚拟DOM、渲染函数。
发布了文章2023-02-17
实际上,组件的渲染、计算属性、组件watch对象和Vue.&watch()方法,它们之所以能响应组件props和data的变化,都是围绕着Watcher类来实现的。
回答了问题2020-03-12
有可能
回答了问题2020-03-12
想做好动效,是要具备一些设计功力的,或花时间调校。建议从开源动画库拿来即用,像animejs应该有你要的“回弹”效果。
回答了问题2019-06-12
目前我觉得最好的方式:封装一个请求接口,每次发送请求先检查登录状态,如果没登录就先请求 session,再发送请求。这样对于页面来说,就不必关心登录状态了。以下代码仅供参考:
回答了问题2019-06-10
CSS 样式是顺序相关的,后面倒入的css文件,可能会覆盖前面倒入的css文件定义的样式。报警告是因为导入css文件时,编译器不能确定css文件的导入顺序,例如:
赞了回答2019-05-30
resolve.modules是用来设置模块搜索的目录,设定目录以后,import模块路径,就可以从一个子目录开始写,这样就可以缩短模块引入路径。例如:
回答了问题2019-05-30
不太确定楼主意思,我猜类型转换应该能满足楼主要求: {代码...}
回答了问题2019-05-27
{代码...}
回答了问题2019-05-26
你可以把 async/await 看成是在 promise 上面又封装了一层,对 promise 对象有效,对用回调的普通函数无效: {代码...}
回答了问题2019-05-25
组件不必在 app.json 中注册,需要在使用该组件的页面或组件的 json 文件中,配置要用到的组件,组件示例: {代码...} 在页面中使用组件: {代码...}
回答了问题2019-05-24
Promise.all 就是并行执行,并将结果按顺序返回,文档: {代码...}
回答了问题2019-05-24
func.push(f()) 这句抛出的错误,f()调用的时候没 await,改成下面就不会报错了: {代码...}
回答了问题2019-05-24
调用一个函数或方法要加(): {代码...} Page 方法定义在初始化页面的对象里就行,公用方法定义在js文件,使用 umd 规范导入或导出: {代码...} 提问前最好自己检查一下是不是语法问题。
回答了问题2019-05-24
提供一个思路,用 NodeJS 来修改 host,在 webpack-dev-server 执行前修改 host,在 webpack-dev-server 停止后再改回来 ,参考 hostile :
回答了问题2019-05-24
你语法写错了 {代码...}
回答了问题2019-05-24
没发现吗,上面的示例读取了 res.data 和 err.data,这样就不用每个请求都写一遍 res = res.data 了。当然,不推荐这么做,应该用 axios 拦截器来实现:
回答了问题2019-05-24
即便状态只在一个模块使用,但放在全局 store 还是有一些好处的。例如:一个页面,数据在页面的话,每次进入页面都要向后台取数据,有一个加载时间。如果放在全局的话,就可以在加载时先显示之前的数据,用户体验会好一些。另外,如果需求变化频繁,指不定哪天就要在...
回答了问题2019-05-24
Webpack 中可以直接用 require 导入模块,文档: {代码...}