Vue学习总结(二)——认识Vue.js

本文介绍了Vue.js的基本概念,包括其作为渐进式JavaScript框架的特点及如何通过简单的示例创建Vue实例来实现数据绑定、列表渲染及事件处理等功能。

1.Vue是一套用于构建用户界面的渐进式的JavaScript框架,什么是渐进式的呢?

  • 渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,带来更丰富的交互体验。
  • 如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及生态系统是可以满足的。
  • 比如Core+Vue+router+Vuex,也可以满足你各种各样的需求。

2.Vue有很多特点和Web开发中常见的高级功能

  • 解耦视图额数据
  • 可复用的组件(采用组件化模式,提高代码复用率,且让代码更好维护。)
  • 前端路由技术
  • 状态管理
  • 虚拟DOM (使用虚拟DOM+优秀的Diff算法,尽量复用DOM节点。)
  • 声明式编码,让编码人员无需直接操作DOM,提高开发效率。

3.HelloVue.js初体验

见下方代码,创建了一个vue对象,创建vue对象的时候,传入了一些options:{} 

  • {}中包含了el属性,该属性决定了这个vue对象挂载到哪个元素上,很明显,我们这里挂载到了id为app的元素上。
  • {}中包含了data属性:该属性中通常会存储一些数据:

        (1)这些数据可以是直接定义出来的,类似我们如下的代码。

        (2)也可能是来自网络,从服务器加载的。

  • 浏览器执行代码的流程,按顺序执行,先显示出对应的HTML,后面创建vue实例并且对原HTML进行解析和修改。是可以做到响应式的。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">{{message}}</div>
<script src="../js/vue.js"></script>
<script>
    // let用来定义变量
    // const用来定义常量
    // 编程范式:声明式编程
    const app = new Vue({
        el: '#app', // 用于挂载要管理的元素
        data: { // 定义数据
            message:'你好,世界'
        }
    })

    // 传统命令式编程步骤
    // 1.创建div元素,设置id属性
    // 2.定义一个变量叫message
    // 3.将message变量放在前面的div元素中展示
</script>
</body>

4.Vue列表展示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <ul>
        <li v-for="item in movies">{{item}}</li>
    </ul>
</div>
<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            movies: ['海贼王','蜡笔小新','我爱中国']
        }
    })
</script>
</body>

执行代码结果如下:

打开开发者模式,使用命令app.movies.push("建国大业")为movies数组增加一条数据:

 

 页面的电影列表自动刷新增加了一条。

重点:可以看出vue.js是响应式的。也就是说,当我们数组中的数据发生改变时,界面会自动改变。

5.计数器案例:

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <h2>{{text}} {{counter}}</h2>
    <!-- 可以直接在click事件中定义简单实现,但是不建议这么做。
    <button v-on:click="counter++">+</button>
    <button v-on:click="counter--">-</button> -->
    <button v-on:click="add">+</button>
    <button v-on:click="sub">-</button>
    <!--  通常写法是下面这样的,@ 是v-on的语法糖
    <button @click="add">+</button> -->
</div>
<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            text: '当前计数:',
            counter: 0
        },
        methods: {
            add: function() {
                this.counter ++;
                console.log('add被执行');
            },
            sub:function() {
                this.counter --;
                console.log('sub被执行');
            }
        }
    })
</script>
</body>

实现效果如下:

 

日志打印效果; 

  • 新的属性methods,该属性用于在vue对象中定义方法。
  • 新的指令:@click,该指令用于监听某个元素的点击事件,并且需要指定当发生点击时,执行的方法(方法通常是methods中定义的方法)。

6、创建Vue实例的options选项

(1)el:

         类型:string | HTMLElement

         作用:决定之后Vue实例会管理哪一个DOM。

         demo:

(2)data:

         类型:Object | Function (组件当中data必须是一个函数)

         作用:Vue实例对应的数据对象。

(3)methods:

         类型:{ [key:string]: Function}

         作用:定义属于Vue的一些方法,可以在其他地方调用,也可以在指令中使用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值