Results 10 comments of Vsnoy

写得真的很好,之前一直缺少这种工程化方面的知识,这份教程是真的详尽,感谢作者大大的分享!!

> 目前可以在 2.x 的版本使用,迁移是等着 2.x 发布正式版时候写,结果它一直未改为正式版,所以就一直未完成。 请问该插件在 2.x 里面怎么生成 sidebar 文件呢,我按照 #59 里说的,没有能够成功生成。

还有在 2.x 里面插件引入的方式有所变化,不再支持通过字符串使用插件。 https://v2.vuepress.vuejs.org/zh/guide/migration.html#plugins 请问该插件在 2.x 版本中要如何引入呢? 方便的话,可以给我个示例吗?

> 才发现这个都改版了。。。 > > 尝试下: > > ```js > const autoSidebar = require('vuepress-plugin-auto-sidebar') > > module.exports = { > plugins: [ > autoSidebar({ > title: { > mode: "uppercase", >...

> Are you windows system? If yes, #138 may be able to help you. I released an [interim version](https://marketplace.visualstudio.com/items?itemName=dusion.vscode-gutter-preview-fork), you can try this. then setting.json > > ``` > "gutterpreview.paths":...

React17之后移除事件池了

> 各个更新队列的更新函数执行顺序取决于任务队列创建先后(即调用useState/useReducer的先后顺序)。 多个更新队列那个例子里,我把useState顺序调换了下 ``` const [counter2, setCounter2] = useState(1); const [counter, setCounter] = useState(1); ``` 结果是 Counter.render begin setCounter update1 Counter.render begin setCounter2 update1 setCounter2 update2 setCounter update2 可见setCounter2更新队列中的更新函数,并不总是先于setCounter更新队列中的更新函数优先执行。 这个要怎么解释呢?

> @Vsnoy https://codesandbox.io/s/muddy-platform-2pj1nr?file=/src/App.js 我这边没有问题 我用你的例子,把两个useState换了下顺序还是这个结果啊。 按照博主的意思,更新队列是按照state hook的声明顺序依次执行的。 ``` const [counter2, setCounter2] = useState(1); const [counter, setCounter] = useState(1); ``` 这么声明的话,期望的输出应该是 ``` setCounter2 update1 setCounter2 update2 setCounter update1 setCounter update2 ```...

还有一个问题不太理解,关于懒计算切换立即计算的时机。 举个栗子,按照博文说的,分析下 ``` function Counter() { const [counter, setCounter] = useState(0) console.log('Counter.render', counter) return ( {`couter: ${counter}`} { console.log('click start') setCounter(prev => { console.log(`update 1, prev ${prev}`) return 1 })...

> > 各个更新队列的更新函数执行顺序取决于任务队列创建先后(即调用useState/useReducer的先后顺序)。 > > 多个更新队列那个例子里,我把useState顺序调换了下 > > ``` > const [counter2, setCounter2] = useState(1); > const [counter, setCounter] = useState(1); > ``` > > 结果是 Counter.render begin setCounter update1...