目录
一、过滤器
- 新的配置项 filters: 用于存放过滤器, 配合 {{ value | 过滤器 }} 语法
- 过滤器可以顺序使用
-
<div>{{ -2 | abs | double | pow(5) }}</div>
-
<template> <div> <!-- 过滤器: 把{{}}中的值进行处理, 返回新的值 --> <!-- abs: 绝对值 --> <div>{{ 9 | abs }}</div> <div>{{ -9 | abs }}</div> <div>{{ 9 | sqrt }}</div> <!-- 双倍 --> <div>{{ 9 | double }}</div> <!-- 求次幂 --> <div>{{ 2 | pow(2) }}</div> <div>{{ 2 | pow(10) }}</div> <!-- 过滤器可以顺序使用 --> <div>{{ -2 | abs | double | pow(5) }}</div> </div> </template> <script> export default { // filters: 用于存放过滤器, 配合 {{ value | 过滤器 }} 语法 filters: { // {{ x | pow(y) }} pow(x, y) { return Math.pow(x, y) }, double(value) { return value * 2 }, // {{ value | abs}} abs(value) { return value > 0 ? value : -value }, sqrt(value) { return Math.sqrt(value) }, }, } </script> <style lang="scss" scoped></style>
二、组件
- 新的配置项 组件: component
- 自定义组件: 利用系统组件组合出自己的组件, 可以复用
- components: 此目录专门用于存放自定义组件
- 自定义组件的名称: 至少两个单词; 依赖大驼峰命名法区分单词
- (非强制): 根组件的class 和标签名相同, 但是class应该全小写 用 - 破折号分割
- 自定义组件: 利用系统组件组合出自己的组件, 可以复用
- 使用自定义组件: 先引入 再使用
- 作者满足所有人的习惯, 提供多种用法
-
<my-nav></my-nav> <my-nav /> <MyNav></MyNav> <MyNav /> 别名写法: {别名: 组件名} <mynav /> <mynav></mynav> 默认大驼峰 会自动兼容 破折号语法 my-nav 和 MyNav
-
三、插槽
- 插槽: slot 预留位
- 插槽: 提前把布局写完, 使用时再存入具体展示的内容
- 会在组件使用时, 替换成其双标签中的内容
- 插槽: 一个占位符; 使用时才会替换成实际的值
- 分为 默认插槽和命名插槽
- 命名插槽: 通过name属性 为 slot 组件添加名字
-
<slot name="zdj" /> 放到名字是 zdj 的插槽里 <ul slot="zdj"> <li>张张</li> <li>俊俊</li> <li>元浩</li> </ul>
- vue2.6版本中, 更新了新的语法
- 必须用虚拟的template 标签作为父元素, 此标签不是实际存在的DOM元素, 仅仅代表一个包围
-
<template v-slot:right> <li>浩浩</li> <li>艳艳</li> <li>俊俊</li> </template> --> 新语法有语法糖: #插槽名 <template #right> <li>美美</li> <li>张张</li> <li>元元</li> </template>
四、props组件属性
- 标签拥有两类重要的设置
- 双标签的值
属性: 各种各样的其他设定
- 双标签的值
- <my-btn type="primary">主要按钮</my-btn>
- props: 属性选项, 用于为自定义组件 声明 属性
- 如果属性没有传参,可以设置默认值
-
简单语法: props: ['type'], 如果属性没有传参,可以设置默认值,需要精确配置 精确配置语法: props: { // 属性名: {配置项} type: { // ctrl+i: 查看配置项 default: 'default', //配置默认值 }, }
五、生命周期
- 组件生命周期: 标签从创建到显示 等过程中, 经历的周期
- 生命周期的作用:
- 自动发送网络请求?
- 在组件显示时, mounted中触发请求操作
- 面试问题: 是否可以在创建阶段发送请求?
- creatd阶段: 能提前几毫秒, 但是一旦小概率挂载到页面上失败, 则请求属于浪费流量
- mounted: 晚几毫秒(用户不可感知), 请求的数据一定用的上,更稳妥
- 生命周期的钩子函数
- 生命周期: 组件从 创建 出生 更新 销毁的过程--组件的一生
- 钩子函数: 一类特殊的函数 -- 在固定的时机自动触发
- 创建阶段: 完成 选项中数据部分的 操作
- beforeCreate() { }
- created()
- 组件出生, 显示到页面上
- beforeMount() { }
- mounted() { }
- 更新时
- beforeUpdate() { }
- updated() { }
- 删除组件中的所有数据
- beforeDestroy() { }
- destroyed() { }
六、监听器
- 监听器: 实时监听属性的变化
- 新的配置项 watch
-
watch: { 要监听的属性名: 变化时触发的函数 num(to, from) { console.log('to:', to) //新值 console.log('from:', from) //旧值 }, }
每日一句
捐躯赴国难,视死忽如归。
"在国家有危难的时候要敢于挺身而出,把死当作回家一样。"