目录
- // 安装vue3依赖
- npm install vue@next
vue3+ts环境配置之后会单独写篇文章,这里就不赘述了。
- // ts 不认识.vue的DefineComponent需要一个shim文件
- declare module "*.vue" {
- import { DefineComponent } from "vue";
- const Component: DefineComponent;
- export default Component;
- }
- function useCounter(): [Ref
, () => void] { - const counter = ref(0)
- function increment() {
- counter.value++
- }
- return [counter, increment]
- }
- export default {
- setup() {
- const [counter, increment] = useCounter()
- return () => <div>
- count is : {counter.value}
- <button onClick= {increment}>addbutton>
- div>
- }
- }
思考
需要知道什么时候绘制DOM吗?
我们学会vue3之后还需要这些生命周期钩子吗?
观察者模式【不耦合】


- const arr = []
- for(let i = 0;i < 10000; i++) {
- arr[i] = i
- }
- // 声明式
- const arr = range(0, 10000)
写程序是为了阅读,其次才是执行
- const div = document.createElement('div')
- div.style.width = 100
- // 声明式
- const div = <div style={{width: 100}} />
- function useLoginStatus() {
- const logined = ref(userStore.logined())
-
- userStore.on(e) {
- switch(e.type) {
- case "logined":
- logined.value = true
- break
- case "logout":
- logined.value = false
- break
- }
- }
- return logined
- }
- export default {
- setup() {
- const loggedIn = useLoginStatus()
- return ()=> <logginStatus loggedIn = {loggedIn} />
- }
- }
-
- const LogginStatus = ({loggedIn}) => {
- if(loggedIn.value) {
- return <div>您好!欢迎光临div>
- } else {
- return <div>请登录......div>
- }
- }
1.分不清:从前端看:怎么理解Reactivity?和React是一个词义吗?说的都是响应式
2.分不清:组合能力是什么?Composition API提供更好的组合能力,这样说对吗?
整个说法是成立的。
组合能力就是将不同的组件组合在一起工作的能力。
每个组件应该做到更小的粒度。
可以细化到一个按钮。
整个逻辑的拼装复用。
不只是视图还有效果【副作用】