vue2vsvue3

vue3.0 + Ts 入门

vue2vue3
Htmltemplate(碎片)不支持碎片,有且只能有一个根节点支持碎片,可以有多个
v-for,v-if先执行v-for,后执行v-if,所以v-if可以使用item先执行v-if 判断整个循环体是否开始执行
Script双向数据绑定原理APIObject.definePropert()【ES5】缺点:监听不到数组通过序列号修改数据;需使用this.$set(obj, 'newProperty', value)的方法来修改才能触发dom更新;Proxy 【ES6】
生命周期beforeCreatedsetup,onmount,生命周期在调用前需要先进行引入。除了这些钩子函数外,还新增 onRenderTracked 和 onRenderTriggered 函数
API类型选项式,mixin混入数据组合式,可以拆分数据和方法,打包成单独文件
数据定义直接放Data里即可需要使用ref,reactive才能获得响应式数据
Cssdeep/deep/,>>>,::v-deep:deep(span){}

衍生问题:
1、vue3的多节点:

父组件:

<template>
    <div>
        我是父节点
        <Son style="color:red" />
    </div>
</template>

场景1、子组件,没接受style,style进入attr,但因为是节点,样式生效。

<template>
    <div>我是子节点</div>
</template>

场景2、子组件,没接受style,style进入attr,但因为是节点,样式不会生效。

<template>
    <div>我是子节点</div>
    <div>我是子节点2</div>
    {{ $attrs }}
</template>

衍生问题:
2、vue2即使是使用set但是修改的是this.obj.newP也是不触发更新的:

<template>
  <div>
    {{ objValue }}
  </div>
</template>
<script>
export default {
  data() {
    return {
      objValue: {}
    }
  },
  created() {
    this.objValue.newP = 1;//!warning

    setInterval(() => {
      this.$set(this.objValue, 'newP', Math.random())
    }, 1000)
  },
}
</script>
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值