前端前进日记 2020-10-30

2020-10-29

1.computed 计算属性和 watch监听器

​ 主要比比自己之前忽略的点

​ computed具有缓存性, 这是很棒的,优化项目性能。用法记得return

​ watch 之前自己主要用途是监听父组件给子组件的值没有在视图上渲染更新。

​ 现在知道了,如果监听是二维数组什么的,或者一个对象里包括了很多不同数据类型,需要deep,不加监听不到,vue会自动跳过

2.prop 和props

还是自己缺陷,之前主要是父组件给子组件 用到props,以为只有这个作用,今天封装ui组件,发现自己狭隘 了。

所谓prop就是传值比如哈

<blog-post title="My journey with Vue"></blog-post>

props更像是文档约束了 title的数据类型和默认值,当然上举例和这个不配,太累懒得换了反正是我自己看

3.封装ui组件踩坑之旅

<template>
  <div class="home">
    <BzForm :model="userInfo" :rules="rules" ref="loginForm">
      <BzFormItem label="给爷输入账号" prop="userName">
        <BzInput v-model="userInfo.userName" placeholder="输入账号"></BzInput>
      </BzFormItem>
      <BzFormItem label="给爷输入密码" prop="userPassword">
        <BzInput
          type="password"
          v-model="userInfo.userPassword"
          placeholder="输入密码"
        ></BzInput>
      </BzFormItem>
      <!-- {{ userInfo.userName }} -->
      <BzFormItem>
        <button @click="login">提交</button>
      </BzFormItem>
    </BzForm>
  </div>
</template>

bz是我的名字,封装组件有双向绑定 校验 弹框 这些比较大看的到功能。
用到了之前没有用到的 p a r e n t 和 p r o v i d e ( ) 传 值 , parent 和 provide()传值, parentprovide()parent.$emit在子组件向父组件发送值

弹框用到的底层比较多贴代码不比比文字了

// 弹窗不能和app一个实例下,不好控制,
import Vue from 'vue'

function create(Component,props){
  // h是createElement,返回VNode
  // 需要挂载才能成为真实的dom元素
  // 不挂载宿主元素,会生成真的dom,追加操作
  const vm = new Vue({
    render: h => h(Component,{props})
  }).$mount()
  
  // appendChild向body节点后增加节点
  document.body.appendChild(vm.$el)

  const comp = vm.$children[0]

  //移除掉手动挂载的jb节点
  comp.remove =()=>{
    document.body.removeChild(vm.$el)
    vm.$destroy()
  }
  return comp
}

export default create

ps明天预习promise

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值