VueUI Day03(8.2)MintUI、Header 组件、Field 组件、Navbar 组件、脚手架项目图片的访问方式、Tabbar 组件

一、MintUI -- 基于移动端的vue组件

搭建 MintUI 的基础项目运行环境

1.新建项目: mint-project 。

# 找一个干净地方 day03/demo/

vue create mint-project

Manually select features

选择:Babel - Vuex - Router - Css Preprocessors 去掉linter

2.x

以下选项一路回车即可

2.安装 mintui 。

扫描二维码关注公众号,回复: 14513387 查看本文章

npm i mint-ui -S

3.在 main.js 中引入 mintui

import MintUI from 'mint-ui'

import 'mint-ui/lib/style.css'

Vue.use(MintUI)

4.测试 mintui 组件。

<mt-button type="primary">测试按钮</mt-button>

二、Header 组件

Header组件用于实现顶部标题栏:

title属性用于设置标题文本。

提供了两个插槽:left、right。分别用于动态设置标题栏左侧与右侧的内容。

三、Field 组件

示例:

1. 新建页面: src/testing/Field.vue ,编写组件内容。

2. 配置路由: 访问: /field 时看到 Field.vue 效果。

实现项目中的注册页面

1. 新建页面: views/Register.vue 。 一个header、三个Field、一个按钮。

2. 配置路由:访问: /register 看到 views/Register.vue

3. 完成注册页面表单验证。

  •      1. 焦点失去时进行表单验证。
  •      2. 点击提交按钮后对表单进行验证。

mt-field 添加 @blur 不生效的问题

如果希望捕获 mt-field 组件的焦点失去事件,应如下编写:

如果为组件直接绑定 @blur 事件, vue 将会把 blur 事件当做是 mt-field 组件的自定义事件,这种自定义事件需要在 mt-field 组件内部通过 $emit() 方法主动触发。 vue 并没当做是DOM的原生事件(焦点失去事件)。所以需要添加 @blur.native 。

这样就会在 mt-field 编译之后的根元素 a 标签上绑定原生的焦点失去事件。还有一个问题:当触发了输入框的onBlur 时,并不会向父元素冒泡,也就不会执行 a 标签上的焦点失去事件处理函数。所以还需要再添加修饰符: @blur.native.capture 。 capture 修饰符的作用使事件处理函数在事件捕获阶段就执行。 先执行父元素再执行子元素。可以保证a标签上的 blur 先执行。

四、Navbar 组件

Navbar 组件用于实现顶部导航。基本结构:

测试:

1. 编写测试页面: testing/Nav.vue ,编写顶部导航。

2. 配置路由:访问 /nav ,看到 testing/nav.vue

五、脚手架项目图片的访问方式

在 vue 脚手架项目中,存放图片的位置有两大类: public 下 src 下

如果图片放在了 src 下

在 src 下的图片用相对路径访问。例如:

在 src/assets/下有001.png 002.png:

@ 相当于 src 目录,从 src 向下寻找图片。

放在 src 目录下的图片,用相对路径来访问,当 vue 发现需要通过相对路径来寻找图片时,将会对该图片进行编译:对图片进行重命名: 001.702493c6.png ,然后在打包时,将图片放入项目根目录下的 /img 文件夹中,最后修改 img 的 src 属性:

脚手架对图片的编译有一些优化措施:

对于足够小的图片,脚手架在编译图片时将会把图片转成 Base64 编码直接写入 img 的 src 属性。

使用了 base64 编码,将会在页面下载时,将图片数据直接下载到客户端,一起显示。

如果图片放到了 public 下

public 下的图片,使用绝对路径(斜杠开头)直接访问。例如:

在public下有图片:007.png 025.png , 如下访问:

public下的资源可以用/直接访问。因为脚手架项目在打包时,将会把 public 下所有静态资源原封不动的复制到dist文件夹中。所以访问 public 下的图片时,可以直接用/访问,相当于直接访问dist目录下的静态资源。Public放纯静态资源

什么样的图片放 assets ?什么样的图片放 public ?

一般情况下项目中必须要显示的小图标、图片可以放入 assets ,其余都放 public 下。

assets 在 src 下,属于项目源代码的一部分。

特殊情况 (相对路径访问 src 下的图片,并且到动态设置路径时)

例如:

上述代码,将会编译图片。

动态修改 src :

一旦给 src 加上冒号, vueloader 将不会编译图片路径,将图片路径直接输出给 src 。

如果希望手动编译,则需要调用 require 方法:

三绝句:

1. public下资源用/直接访问。

2. assets下资源用相对路径访问。 ../ 或 @

3. 如果src需要动态设置,长个心眼儿, 必要时添加 require 。

六、Tabbar 组件

Tabbar 用于显示底部选项卡。基本结构如下:

要使图片资源是动态的,scr前要加冒号变成动态的,里面的路径用字符串拼接,使用三目判断并决定当前选项是选中状态与未选中状态的图片,但是由于这种路径的图片需要编译才行,动态的src是不自动进行编译的,所以要调用require()方法,图片路径会被require处理

还有另一种方法是直接用v-if判断,可读性更高

猜你喜欢

转载自blog.csdn.net/m0_70328115/article/details/126145373