君陌离的博客

vuePress-theme-reco 君陌离    2018 - 2020
君陌离的博客 君陌离的博客

Choose mode

  • dark
  • auto
  • light
首页
我的作品
  • 项目橱窗
  • blog模板
分类
  • 数据库
  • CSS
  • 摘记
  • JS
  • Node
  • Vue
  • React
  • GIT
  • Promise
  • Liunx
  • Xshell
  • ajax
  • WINDOWS
  • Python
  • 随笔
  • 脚手架
  • node
  • 自动化
标签
笔记
时间线
About Me
  • 关于我
  • 赞赏
Contact
  • GitHub
  • QQ
author-avatar

君陌离

70

文章

90

标签

首页
我的作品
  • 项目橱窗
  • blog模板
分类
  • 数据库
  • CSS
  • 摘记
  • JS
  • Node
  • Vue
  • React
  • GIT
  • Promise
  • Liunx
  • Xshell
  • ajax
  • WINDOWS
  • Python
  • 随笔
  • 脚手架
  • node
  • 自动化
标签
笔记
时间线
About Me
  • 关于我
  • 赞赏
Contact
  • GitHub
  • QQ
  • HTML5

  • JS

  • 微信小程序

  • 数据库

  • React

  • Vue

    • Vue知识点
    • Vuex中的核心内容
    • Vue三种传参方式
    • Vue的钩子函数[路由导航守卫、keep-alive]
    • Vue自定义指令,插槽,监听
    • Vue生命周期
  • vuepress

Vue自定义指令,插槽,监听

vuePress-theme-reco 君陌离    2018 - 2020

Vue自定义指令,插槽,监听

君陌离 2020-08-07 14:44:26 VueVue自定义指令

# 全局指令

// 注册一个全局自定义指令 `v-focus`
Vue.directive('focus', {
  // 当被绑定的元素插入到 DOM 中时……
  inserted: function (el) {
    // 聚焦元素
    el.focus()
  }
})
1
2
3
4
5
6
7
8

# 局部指令,组件中也接受一个 directives 的选项

directives: {
  focus: {
    // 指令的定义
    inserted: function (el) {
      el.focus()
    }
  }
}
1
2
3
4
5
6
7
8

# 具名插槽

  • 组件写法
<!-- drag组件 -->
<template>
<div class="drag-box" ref="box">
  <div class="left">
    <!--左侧div内容-->
    <slot name="drag-left"></slot>
  </div>
  <div class="resize" title="收缩侧边栏">
    ⋮
  </div>
  <div class="mid">
    <!--右侧div内容-->
    <slot name="drag-right"></slot>
  </div>
</div>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  • 引用组件,让用户可以拓展组件,去更好地复用组件和对其做定制化处理
<drag>
  <div slot="drag-left">
    <!-- 自定义内容 -->
  </div>
  <div slot="drag-right">
  <!-- 自定义内容 -->
  </div>
</drag>
1
2
3
4
5
6
7
8

# 普通监听

watch: {
  initData(newV, oldV) {
      // do something, 可使用this
      // console.log(newV)
  }
}
1
2
3
4
5
6

# 深度监听

watch: {
  initData: { //深度监听,可监听到对象、数组的变化
    handler(newV, oldV) {
      // do something, 可使用this
      // console.log(newV)
    },
    immediate: true,
    deep: true
  }
}
1
2
3
4
5
6
7
8
9
10
欢迎来到 您的站点名称($site.title)
看板娘