前端修仙之路

Vue-指令、自定义过滤器

2019-07-14  本文已影响4人  月上秦少

最近做的项目,一直用的Angular6.0框架,期间陆陆续续完成了三四个项目。业务知识有一定的提升,但是一直用一个框架,只会增加对该框架的熟练度,并不能得到技术上的突破。
也许,自己对Angular的认识也是浅尝辄止,但是前端技术日新月异,想要精通某一个框架,实在精力不够(最多熟练应用),说不定,某一天这个框架就凉凉了,而如今,国内Vue很是火热,招聘要求最多,这“究竟是人性的扭曲还是道德的沦丧”,让我们踏进Vue的世界,一探究竟。

Angular2+,用的是typescript,而vue3.0即将发布,也用的是typescript,期间也学过一遍vue2.0,这次温故而知新,等vue3.0发布,就可以直接上手了。

那么,现在从小白开始,重温Vue2.x吧!

一. Vue简介

Vue2.x中文官方文档

1. Vue.js初识

Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件

知乎解释:Vue2.0 中,“渐进式框架”和“自底向上增量开发的设计”这两个概念是什么?

2.Vue起步

1. 安装

bower info vue
npm init --yes
cnpm install vue --save
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="./node_modules/vue/dist/vue.min.js"></script>

这里将Vuejs当做一个js库来使用,也可以使用vue-cli,后续会用到。

2. 安装调试工具vue-devtools插件

安装调试工具vue-devtools插件,便于在浏览器中调试vue

3.牛刀小试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>初识Vue</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <!--<script src="./node_modules/vue/dist/vue.min.js"></script>-->
    
    <script>
        window.onload = () => {
        const app = new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue!'
            }
        })
        }
    </script>
</head>
<body>
<div id="app">
    {{ message }}
</div>
</body>
</html>

4.vue核心基础知识

1. 模板语法

{{data}}, 即Mustache语法

2. 指令

指令:用来扩展html标签的功能

angularjs中常用的指令:
    ng-model
    ng-repeat
    ng-click
    ng-show/ng-hide
    ng-if
    
angularTs中常用的指令:
    ([ngModel])
     *ngIf
     *ngFor
     [ngClass]
     [ngSwitch]
     [ngStyle]
     
vuejs中常用的指令:
    v-model
    v-if
    v-for
    v-on
    v-show
    v-bind
    v-once

vuejs中常用的指令介绍

v-for中:key的作用主要是为了高效的更新虚拟DOM
Vue2.0 v-for 中 :key 到底有什么用?

3. 过滤器

用来过滤模型数据,在显示之前进行数据处理和筛选
语法:{{ data | filter1(参数) | filter2(参数)}}

由于vue2.x中已经没有内置过滤器,所以我们需要自定义过滤器。

自定义全局过滤器

使用全局方法Vue.filter(过滤器ID,过滤器函数)

Vue.filters('lowercase', function(value){
          // 处理value值,比如:转为小写
          return value.toLowerCase();
        })
Vue.filter('date',data => {
            let d=new Date(data);
            return d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate()+' '+d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
        });
        
// getter,返回已注册的过滤器
var myFilter = Vue.filter('my-filter');

自定义局部过滤器

局部过滤器,如果和全局过滤器名称相同,会覆盖掉全局过滤器。

let vm=new Vue({
    el:'#app',
    data:{
        currentTime:Date.now()
    },
    filters:{ //局部过滤器
        number:(data,n) => {
            return data.toFixed(n);
        },
        date: data => {
            let d=new Date(data);
            return d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate()+' '+d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
        }
});

练习:英雄列表管理

英雄列表
上一篇 下一篇

猜你喜欢

热点阅读