Vue过滤器、组件、插槽、props、监听器watch

过滤器

过滤器: filter, 把{{ }}中的值进行处理, 返回新的值

<template>
  <div>
    <!-- abs: 绝对值 -->
    <div>{{ 9 | abs }}</div>
    <div>{{ -9 | abs }}</div>
  </div>
</template>

在 script 脚本中, 和data methods平级的 filters 方法用于存放过滤器, 配合 {{ value | 过滤器 }} 语法

<script>
  export default {
    filters: {
      // {{ value | abs }}
      abs(value) {
        return value > 0 ? value : -value
      },
    },
  }
</script>

组件component

系统组件: div span h1 hr img ...

自定义组件: 利用系统组件组合出自己的组件, 可以复用

components: 此目录专门用于存放自定义组件

在 src 下面新建一个 component 文件夹

这样的一个结构, 在里面书写自定义组件

自定义组件的名称: 至少两个单词; 依赖大驼峰命名法区分单词, 大驼峰: XiAn  每个单词首字母大写因为: 系统组件/标签 都是1个单词; 自定义的组件为了区分, 所以要求至少两个单词

最后引入页面使用就可以了

<template>
  <div>
    <my-nav />
  </div>
</template>

<script>
import MyNav from './components/MyNav.vue' //引入

  export default {
    components: {MyNav, mynav: MyNav},
  }
</script>

 插槽

 插槽: 一个占位符; 使用时才会替换成实际的值

<template>
    <div class="my-slot">
        <div class="header">
            <!-- 默认插槽 -->
            <slot />
        </div>
        <div class="main">
            <div class="left">
                <!-- 命名插槽: 通过name属性 为 slot 组件添加名字 -->
                <slot name="suibian" />
            </div>
            <div class="right">
                <slot name="right" />
            </div>
        </div>
    </div>
</template>

props

props: 属性选项, 用于为自定义组件 声明 属性

<template>
    <div :class="`my-alert ${ type }`">
        <span>
            <slot />
        </span>
        <div>sui: {{ sui }}</div>
        <div>bian: {{ bian }}</div>
    </div>
</template>

<script>
    export default {
        props:['sui', 'bian', 'type'],
    }
</script>

监听器watch

监听器: 实时监听属性的变化

<template>
  <div>
    <button @click="num++">{{ num }}</button>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        num: 1,
      }
    },
    // 监听器
    watch: {
        num(to, from){
        console.log('to:', to);
        console.log('from:', from); 
      },
    },
  }
</script>

<style lang="scss" scoped>

</style>

两个参数: 要监听的属性名: 变化时触发的函数

to为新值 from为旧值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值