使用 Material Design UI 开发
Material Design UI 是指基于 Google 的 Material Design 全新设计语言的一些 CSS 框架。它们功能强大,界面简洁、美观,交互上也更加立体友好,同时也提供了很多常用的UI组件,除了最基本的菜单、按钮、滑动杆、进度条、单选框/复选框外,还提供了一些很有趣的图标、layouts、主题等。使用这些框架,我们能够快速搭建出交互友好的网站效果。既然有了,为啥不用呢?其中基于 Vuejs 2.0 和 Material Design 的 UI 库也很多(查看更多),如 muse-ui、vue-material、vuetify 等,导出项目中选用了 vuetify 组件库。
Vuetify
- 介绍
结合 Material Design 和 Vue 可以建立精美的应用,提升用户的交互体验。官网也给出了该框架的一些优势:
考虑到了 SSR (Server-Side Rendering) 服务端渲染的情况,这也是我们选择它的原因之一
Layouts 结合 Material Design,提供了独一无二的交互体验,满足您的开发需求
提供了必须可用的组件,且使用方便
- 通过 npm 或 yarn 安装 Vuetify :
$ npm install --save vuetify$ yarn add vuetify
- 使用
首先在你的应用(项目中对应 src/app.js )中通过 Vue.use(Vuetify) 导入:
// 引入全部组件import Vue from 'vue';import Vuetify from 'vuetify';Vue.use(Vuetify);
然后就可以直接在html(或者vue)文件中使用,如下定义了一个按钮:
<div><v-btn dark flat>Normal</v-btn></div>
可以在官网查看更多组件的使用和效果
- 项目中主题修改
项目中修改主题的配置在 config/theme.js 中 详细可点击查看,此处不多赘述
如果不使用 Material Design UI
Material Design UI 库的运用可以让我们快速的实现一些美观的展现效果,但是如果官网提供的效果仍然没有符合您的预期,您也可以自己开发自己的组件,应用到自己的项目中。
组件开发:这里以一个简单的 mask 蒙层组件为例
- 组件的开发:
<!-- 模板部分: 点击蒙层调用关闭方法 --><template><transition name="fade"><div v-show="show" @click.stop="closeAppMask"></div></transition></template><!-- js部分:包括需要父组件传递来的一些参数props,和本身方法methods --><script>export default {props: ['show'],methods: {closeAppMask() {this.$emit('close-mask');}}};</script><!-- 样式效果 --><style lang="stylus" scoped>...</style>
- 父组件如何调用:
<template><div class="app-sidebar-wrapper"><!-- 使用app-mask组件,注意使用时驼转化成中划线 --><app-mask :show="show"@close-mask="closeAppSidebar"></app-mask></div></template><!-- 通过 import 引入组件,放到components中,在模板中就可以调用啦 --><script>import AppMask from './AppMask.vue';export default {components: {AppMask},props: {show: {'type': Boolean,'default': true}},methods: {closeAppSidebar() {this.$emit('close-sidebar');}}};</script><!-- 样式 --><style lang="stylus" scoped>...</style>
