2020-08-30 前端路上的新长征(Vuetify入门)

2020-08-30  本文已影响0人  Rockage
image.png

前端路上的新长征

从历史的角度来说,尽管几十年过去了,前端(即运行在浏览器里的程序)的基本结构还是以HTML(CSS)+Javascript为主,变化不大,曾经有一些脚本语言比如微软的VBS试图挑战过这个架构,均以失败告终(甚至连昙花一现都谈不上)。后端(服务器)方面则是百花齐放,方案众多,像是Java、PHP、GO、Python以及Javascript本身的一个分支Node.JS等等。

由于WEB技术的发展速度非常快,因此HTML与Javascript也在高速迭代,于是产生了 “框架” 这个概念,所谓框架就是一堆前人已经编写好的成体系的代码,其主要目的是不重复造轮子,加速开发效率。

前端框架大致上分为两个大类,侧重于HTML的CSS框架与侧重于Javascript的JS框架。

主流的Javascript框架:React、Angular、Vue
主流的CSS框架:Bootstrap、Element、Vuetifylk

像React、Vue这一类框架关注点是Javascript本身,更多的是属于处理逻辑层面的事务。而Bootstrap和Vuetify这一类CSS框架则着重关注HTML界面,页面布局,排版等视觉方面的事情。

在没有框架之前,所有前端开发者都采用原生HTML和原生Javascript,工作量极大。当然,你如果问:我们一定需要框架吗?答案却是否定的,国外就确实有一股势力是反对采用框架编程的,自诩为 "JS反框架联盟",为了不引战,此话题咱们不做深入探讨,见仁见智吧。

Vuetify 篇:

由于Vuetify是专门提供给Vue使用的(从其名字也大概猜到了),所以在使用Vuetify之前我们还必须先安装Vue。

image-20200830075007635.png

一个最基础的APP界面如下:

image-20200829024214407.png

如图所示,这是一个最简单的APP框架,包括

最基础的主页代码,UI由<template>部分组成,JS代码包裹在<script>里:

<template>
  <v-app id="inspire">
    <v-navigation-drawer
            v-model="drawer"
            app
            clipped>
<!--  vmodel: 显示开关,设为null的时候屏蔽导航栏 
         app : 是app = 'true'的简化语法,表示这个导航栏属于app的一部分
         clipped: 等于clipped = 'true',表示导航栏采用压缩布局
-->
      <v-list dense>
        <v-list-item link>
          <v-list-item-action>
            <v-icon>mdi-home</v-icon>
          </v-list-item-action>

          <v-list-item-content>
            <v-list-item-title>选项1</v-list-item-title>
          </v-list-item-content>
        </v-list-item>

        <v-list-item link>
          <v-list-item-action>
            <v-icon>mdi-email</v-icon>
          </v-list-item-action>

          <v-list-item-content>
            <v-list-item-title>选项2</v-list-item-title>
          </v-list-item-content>
        </v-list-item>
      </v-list>
    </v-navigation-drawer>

    <v-app-bar
            app
            clipped-left
            color="cyan"
            dense
    >
      <v-app-bar-nav-icon @click.stop="drawer = !drawer"></v-app-bar-nav-icon>
      <v-toolbar-title>Application</v-toolbar-title>

    </v-app-bar>

    <v-main>
      <v-container
              class="fill-height"
              fluid
      >
      <h1>Hello World!</h1>
      </v-container>
    </v-main>

    <v-footer
            color="cyan"
            app
    >
      <v-spacer></v-spacer>

      <span class="white--text">&copy; {{ new Date().getFullYear() }}</span>
    </v-footer>
  </v-app>
</template>

<script>
  export default {
    name: 'SimpleDemo',
    props: {
      source: String,
    },
    data: () => ({
      drawer: null,
    }),
  }
</script>

上面是最简单的基础用法,接下来我们稍微复杂一点:
  1. 用数组的方法为导航栏(v-navigation-drawer) 添加连接
  2. 结合vue-router动态渲染主视图区


运行结果如下,点击导航栏不同的菜单选项,触发vue-router产生不同的参数,主视图也会跟着一起改变:

image-20200830054159768.png
上一篇 下一篇

猜你喜欢

热点阅读