实现ElementUI
的经典布局
- 新建
views/Components.vue
,搭建页面布局结构。 - 配置路由: 访问
/components
,看到页面内容。
Vue
的嵌套路由
根据当前需求:
- 当访问:
/components/border
组件页面的main
部分显示border
- 当访问:
/components/icon
组件页面的main
部分显示icon
- 当访问:
/components/color
组件页面的main
部分显示color
发现需要在compoents
页面中还有需要动态更新的部分,这个时候就可以选择使用嵌套路由来实现。
案例:嵌套路由实现页面main
部分内容的动态更新。
- 新建3个
vue
页面。Border.vue
.Color.vue
.Icon.vue
. - 在
router index.js
中配置嵌套路由,定义路由与组件的映射关系。 - 使用特定的
url
路径访问页面即可。
MintUI
MintUI
是饿了么团队开发的基于vue
的移动端组件库。
Vant
是有赞团队开发的移动端组件库。
基于脚手架安装MintUI
-
新建脚手架项目。
# 找一个空目录 例如: day01/demo vue create scaffolding # 依次选择: Manually select features Choose Vue version + Babel + Router + Vuex 2.x 问: Use history mode for router? 答: yes In package.json 是否将当前配置作为预设配置下次直接使用? n
-
在新项目中安装
MintUI
。(npm install
)# 在ele_project目录下 执行命令 npm install --save mint-ui
-
在脚手架项目
main.js
中,配置使用MintUI
。// main.js import MintUI from 'mint-ui'; import 'mint-ui/lib/style.min.css'; Vue.use(MintUI)
-
编写页面内容。
MintUI
常用组件
Header
组件
Header
组件用于定义移动端界面头部标题栏。其基本结构:
<template>
<div>
<mt-header title="标题" fixed></mt-header>
</div>
</template>
案例:
- 新建页面:
src/testing/Header.vue
,编写Header
内容。 - 配置路由。
/header
时看到Header.vue
。
Button
组件
Button
组件用于显示按钮。其基本结构:
<mt-button type="按钮类型"
size="按钮尺寸"
icon="图标"
disabled
plain>
确认注册
</mt-button>
按钮类型:
default
,primary
,danger
按钮尺寸:
small
normal
large
图标类型:
back
more
案例:
- 新建
testing/Button.vue
,编写页面内容。 - 配置路由。访问
/button
时,看到这个页面。
Field
组件
Field
组件用于实现表单编辑器,其基本语法:
<mt-field type="输入框的类型"
label="输入框左侧的文本"
placeholder="占位内容"
readonly
disabled
disableClear
state="输入框的状态"
:attr="{maxlength:15, autocomplete:'off'}">
</mt-field>
state
:输入框的状态 可选:
success
error
warning
:attr
:为input
添加html5
原生属性。
案例:访问/field
,看到文本输入框测试页面,对组件进行测试。
- 新建
testing/Field.vue
- 配置路由。
完成注册页面
- 新建
views/Register.vue
,编写注册页面内容。 - 配置路由。
/register
看到注册页面内容。
unknown custom element: mt-header。
npm run serve时出错:no such file or directory: package.json。
错误处理
Uncaught ReferenceError: button is not defined
Unknown custom element: <el-row> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
Identifier 'Button' has already been declared. (5:7)
This dependency was not found: * vue/types/umd in ./src/router/index.js
vue is not defined