邂逅vuejs

认识vuejs

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

  • Vue是一个渐进式的框架,什么是渐进式的呢?

    • 渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,带来更丰富的交互体验。
    • 或者如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及其生态系统。
    • 比如Core+Vue-router+Vuex,也可以满足你各种各样的需求。
  • Vue有很多特点和Web开发中常见的高级功能

    • 解耦视图和数据
    • 可复用的组件
    • 前端路由技术
    • 状态管理
    • 虚拟DOM
  • 学习Vuejs的前提?

    • 从零学习Vue开发,不需要你具备其他类似于Angular、React,甚至是jQuery的经验。
    • 需要具备一定的HTML、SS、JavaScript基础。

vue的安装

  • 使用一个框架,我们第一步要做什么呢?安装下载它

  • 安装Vue的方式有很多:

    • 方式一:直接CDN引入
      你可以选择引入开发环境版本还是生产环境版本

      <!-- 开发环境版本,包含了有帮助的命令行警告 -->
      <scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
      <!-- 生产环境版本,优化了尺寸和速度 -->
      <scriptsrc="https://cdn.jsdelivr.net/npm/vue"></script>
    • 方式二:下载和引入

      开发环境https://vuejs.org/is/vue.js
      生产环境https://vuejs.org/js/vue.min.js

    • 方式三:NPM安装

具体参考官方文档:https://cn.vuejs.org/v2/guide/installation.html

Hello Vuejs

一个简单的demo体验一下vuejs。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello Vuejs</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: "Hello, Vuejs."
}
});
</script>

</body>
</html>

代码做了什么事情?

  • 发现创建了一个Vue对象。
  • 创建Vue对象的时候,传入了一些options:{}
    • {}中包含了el属性:该属性决定了这个Vue对象挂载到哪一个元素上,很明显,我们这里是挂载到了id为app的元素上
    • {}中包含了data属性:该属性中通常会存储一些数据
      • 这些数据可以是我们直接定义出来的,比如像上面这样。
      • 也可能是来自网络,从服务器加载的。

渐进式框架体验

通过浏览器console修改app.message的值,直观的体验渐进式框架。

image-20210724173308609

Vue列表展示

展示一个更加复杂的数据:数据列表。

  • 比如我们现在从服务器请求过来一个列表
    HTML代码中,使用v-for指令,即可快速完成一个列表数据的展示。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue List</title>
</head>
<body>

<div id="app">
<ul>
<li v-for="item in books">《{{item}}》</li>
</ul>
</div>

<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
books: ["肖申克的救赎", "论语", "代码整洁之道", "道德经"]
}
});
</script>
</body>
</html>

展示效果:

image-20210724174359724

Vue计数器案例

点击按钮执行函数,改变界面的数值。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue-计数器</title>
</head>
<body>

<div id="app">
<h1>当前计数:{{counter}}</h1>
<hr>
<!-- <button v-on:click="counter&#45;&#45;"> - </button>-->
<!-- <button v-on:click="counter++"> + </button>-->
<button v-on:click="subtraction"> - </button>
<button v-on:click="increment"> + </button>
</div>

<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el: '#app',
data: {
counter: 0
},
methods: {
// +
increment: function () {
// 要是用this关键字
this.counter++;
console.log("increment 方法被执行")
},
// -
subtraction: function () {
this.counter--;
console.log("subtraction 方法被执行")
}
}
});
</script>
</body>
</html>

展示效果:

Jul-24-2021 18-04-21

这里,使用新的指令和属性

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