vue简介,插值表达式,过滤器

时间:2024-02-01 19:28:02

VUE框架介绍

what?什么是vue?

渐进式 javaScript框架

渐进式?:可以通过vue控制某个标签,那么一个网页可以把所以内容写进一个标签,就可以通过vue控制整个页面。
渐进式:可以控制一个页面的一个标签,也可以控制一系列标签,也可以控制整个页面,甚至可以控制整个前台项目

why?为什么要学习vue?

为什么:为了前后端完全分离开发

三大主流框架之一:Angular React Vue
先进的前端设计模式:MVVM
可以完全脱离服务器端,以前端代码复用的方式渲染整个页面:组件化开发


"""
1)Vue框架:前台界面,页面逻辑
    1)指令:(分支结构,循环结构...),复用页面结构等
    2)实例成员:(过滤器,监听),可以对渲染的数据做二次格式化
    3)组件:(模块的复用或组合),快速搭建页面
    4)项目开发

2)DRF框架:数据(接口)
    1)基础的模块:请求、响应、解析、渲染
    2)序列化、三大认证
    3)过滤、搜索、排序、分页
    4)异常、第三方jwt、restful接口规范
    
3)为什么学习vue:
    前台框架:Angular(庞大)、React(精通移动端)、Vue(吸取前两者优势,轻量级)
    Vue一手文档是中文
    实现前后台分离开发,节约开发成本
"""

special特点?

单页面web应用
数据驱动
数据的双向绑定
虚拟DOM

how如何使用?

开发版本:vue.js

生产版本:vue.min.js

<div id="app">
    {{ }}
</div>
<script src="js/vue.min.js"></script>
<script>
    new Vue({
        el: '#app'
    })
</script>

下载安装?

1581414725946

导入方式?

导入js文件一样,用cdn或者本地导入

<!-- cdn导入 -->
 <script src="https://cn.vuejs.org/js/vue.js"></script>
<!--    本地导入-->
<script src="js/vue.js"></script>

挂在点el

el: 挂载点
* 1)一个挂载点只能控制一个页面结构(优先匹配到的结构)
* 2)挂载点挂载的页面标签严格建议用id属性进行匹配(id名字一般习惯用app),因为id唯一的特点
* 3)html标签与body标签不能作为挂载点(html和body标签不可以被替换,组件中详细介绍)
* 4)是否接受vue对象,是外界是否要只有vue对象的内容决定的
<div id="app">
    <div class="d1">
        {{ num }}
    </div>
    <div class="d1">
        {{ num }}
    </div>
</div>
<div id="main">
    {{ n }}
</div>

<script>
 var app = new Vue({
     el: '#app',
     data: {
         num: 100
     }
 });
 console.log(app.$data.num, app.num);
 new Vue({
     el: '#main',
     data: {
         n: app.num
     }
 });
</script>

插值表达式

插值表达式
     * 1)空插值表达式:{{ }}
     * 2)中渲染的变量在data中可以初始化
     * 3)插值表达式可以进行简单运算与简单逻辑
     * 4)插值表达式符合冲突解决,用delimiters自定义(了解)

delimiters自定义插值表达式括号

// 控制vue插值表达式符合
        delimiters: ['[{', '}]'],
<div id="app">
    <p>{{ info }}</p>
    <p>{{ msg }}</p>
    <p>{{ }}</p>
    <p>{{num}}</p>
    <p>{{num + 10 * 2}}</p>
    <p>{{ msg.length + num }}</p>
    <p>{{ msg[4] }}</p>
    <p>{{ msg.split('')[4] }}</p>
    <p>[{ num }]</p>
</div>
<script>
    new Vue({
        el: '#app',
        data: {
            info: '信息',
            msg: 'message',
            num: 10,
        },
        // 控制vue插值表达式符合
        delimiters: ['[{', '}]'],
    })
</script>

过滤器

过滤器
     * 1)用实例成员filters来定义过滤器
     * 2)在页面结构中,用 | 来标识使用过滤器
     * 3)过滤方法的返回值就是过滤器过滤后的结果
     * 4)过滤器可以对1~n个变量进行过滤,同时还可以传入辅助的变量,
     *      过滤器方法接受参数是安装传入的位置先后
<body>
    <div id="app">
        <!-- 简单使用:过滤的对象会作为参数传给过滤器 -->
        <p>{{ num | add(20) }}</p>
        <!-- 串联使用:将第一个过滤器结果作为参数给第二个过滤器 -->
        <p>{{ num | add(100) | jump(2) }}</p>
        <!-- 究极使用 -->
        <p>{{ n1, n2 | fn(99, 77) }}</p>
        <!-- 你品,你细品 -->
        <p>{{ n1, n2 | fn(99, 77), n1, n2 | fn(100) }}</p>
    </div>
</body>
<script src="js/vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            num: 10,
            n1: 66,
            n2: 88
        },
        filters: {
            add: function (a, b) {
                console.log(a, b);
                return a + b;
            },
            jump: function (a, b) {
                return a * b
            },
            fn: function (a, b, c, d) {
                console.log(a, b, c, d);
                return a + b + c + d;
            }
        }
    })
</script>