2020-12-27

头条项目第三天

学习目标
1.完成登录页
2.完成注册页
3.slot插槽
4.Vant组件库
5.实现个人中心布局

组件封装

1.创建组件
2.导入组件
3.注册组件
4.使用组件

slot 插槽

插槽官方文档:https://cn.vuejs.org/v2/guide/components-slots.html
父组件的标签对内传HTML结构

<MyButton>注册</MyButton>
<MyButton>登录</MyButton>
<MyButton></MyButton>   // 这个没有传 HTML 结构,所以使用插槽的默认值

子组件通过接收传递过来HTML结构

<button> <slot>按钮</slot></button>

传递过来的html结构会替换大slot的位置,如果没有传递则使用slot的默认值
在这里插入图片描述

Vue Devtools 基本使用

Vue项目常用的四个调试面板

在这里插入图片描述
1.查看组件父传子属性很方便
2.更加直观的感受子传父数据是否正常传递
3.props-重要
4.data-重要
。router
$attrs

父组件的属性默认会添加到子组件的跟标签上。

父组件
<MyInput
    name="password"
    type="password"
    placeholder="密码"
    err_message="请输入6到18位的密码"
    :rule="/^[0-9A-Za-z_~!@#$%^&*()_+.]{6,18}$/"
    @aa="aaHandle"
/>
<input
    :class="{ success: state==='success', error: state==='fail' }"
    v-model="inputVal"
    @input="inputHandle"
    @change="checkVal"
  >

可以通过this.$attrs.name 可直接获取属性

通过调试工具查看$attrs

在这里插入图片描述

Vant UI 组件库

安装依赖

npm install vant

npm install babel-plugin-import

配置自动按需引入组件

module.exports = {
  presets: ['@vue/cli-plugin-babel/preset'],
  plugins: [
    [
      'import',
      {
        libraryName: 'vant',
        libraryDirectory: 'es',
        style: true,
      },
      'vant',
    ],
  ],
}

重启脚手架

注意:在vue项目中但凡修改过xxxxx.config.js的配置文件,修改过的配置文件的需要重启一下

按需导入组件并全局注册组件

新建 src\vant\index.js 文件

import Vue from 'vue';
import { Button } from 'vant';

Vue.use(Button);

src\main.js 导入让全局注册组件的代码运行。

import './vant'

在任意一个 Vue 页面中使用。

<van-button type="primary">主要按钮</van-button>
<van-button type="info">信息按钮</van-button>
<van-button type="default">默认按钮</van-button>
<van-button type="warning">警告按钮</van-button>
<van-button type="danger">危险按钮</van-button>

Vant 轻提示组件

引入组件:https://vant-contrib.gitee.io/vant/#/zh-CN/toast#yin-ru

全局方法:https://vant-contrib.gitee.io/vant/#/zh-CN/toast#quan-ju-fang-fa

组件API:https://vant-contrib.gitee.io/vant/#/zh-CN/toast#api

按需导入

src\vant\index.js 文件中按需导入。

import { Toast } from 'vant'

Vue.use(Toast)

ue 组件内调用全局方法

引入Toast组件后,会自动在Vue的prototype上挂载 t o a s t 方 法 , 便 于 在 组 件 内 调 用 ( 所 有 V u e 组 件 都 是 v u e 的 实 例 ) 把 项 目 中 的 所 有 a l e r t 换 成 轻 提 示 t h i s . toast方法,便于在组件内调用(所有Vue组件都是vue的实例) 把项目中的所有alert换成轻提示this. toast便Vuevuealertthis.toast

// 无图标文本轻提示
this.$toast('无图标文本提示');

// 成功图标轻提示
this.$toast.success('成功图标提示');

// 失败图标轻提示
this.$toast.fail('失败图标轻提示');

// 加载图标轻提示
this.$toast.loading('加载图标轻提示');

// 关闭轻提示
this.$toast.clear();

非 Vue 组件内用法

import { Toast } from 'vant'

// 无图标文本轻提示
Toast('无图标文本提示');

// 成功图标轻提示
Toast.success('成功图标提示');

// 失败图标轻提示
Toast.fail('失败图标轻提示');

// 加载图标轻提示
Toast.loading('加载图标轻提示');

// 关闭轻提示
Toast.clear();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值