3.快速入门

接下来,我们快速领略下vue的魅力

3.1.创建工程

创建一个新的空工程:

VUE-快速入门_快速入门

VUE-快速入门_vue.js_02

然后新建一个module:

VUE-快速入门_快速入门_03

选中static web,静态web项目:

VUE-快速入门_数据_04

位置信息:
VUE-快速入门_快速入门_05

3.2.安装vue

3.2.1.下载安装

下载地址:https://github.com/vuejs/vue

可以下载2.5.16版本https://github.com/vuejs/vue/archive/v2.5.16.zip

下载解压,得到vue.js文件。

3.2.2.使用CDN

或者也可以直接使用公共的CDN服务:

<!-- 开发环境版本,包含了用帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

或者:

<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>

3.2.3.推荐npm安装

在idea的左下角,有个Terminal按钮,点击打开控制台:

VUE-快速入门_快速入门_06

进入hello-vue目录,先输入:npm init -y 进行初始化

VUE-快速入门_数据_07

安装Vue,输入命令:npm install vue --save

VUE-快速入门_快速入门_08

然后就会在hello-vue目录发现一个node_modules目录,并且在下面有一个vue目录。

VUE-快速入门_vue_09

node_modules是通过npm安装的所有模块的默认位置。

3.3.vue入门案例

3.3.1.HTML模板

在hello-vue目录新建一个HTML

VUE-快速入门_vue_10

在hello.html中,我们编写一段简单的代码:

VUE-快速入门_快速入门_11

h2中要输出一句话:xx 非常帅。前面的xx是要渲染的数据。

3.3.2.vue声明式渲染

然后我们通过Vue进行渲染:

<body>
    <div id="app">
        <h2>{{name}},非常帅!!!</h2>
    </div>
</body>
<script src="node_modules/vue/dist/vue.js" ></script>
<script>
    // 创建vue实例
    var app = new Vue({
        el:"#app", // el即element,该vue实例要渲染的页面元素
        data:{ // 渲染页面需要的数据
            name: "龙哥"
        }
    });

</script>
  • 首先通过 new Vue()来创建Vue实例
  • 然后构造函数接收一个对象,对象中有一些属性:
    • el:是element的缩写,通过id选中要渲染的页面元素,本例中是一个div
    • data:数据,数据是一个对象,里面有很多属性,都可以渲染到视图中
      • name:这里我们指定了一个name属性
  • 页面中的h2元素中,我们通过{{name}}的方式,来渲染刚刚定义的name属性。

打开页面查看效果:

VUE-快速入门_vue.js_12

更神奇的在于,当你修改name属性时,页面会跟着变化:

VUE-快速入门_vue_13

3.3.3.双向绑定

我们对刚才的案例进行简单修改:

<body>
    <div id="app">
        <input type="text" v-model="num">
        <h2>
            {{name}},非常帅!!!有{{num}}位女神为他着迷。
        </h2>
    </div>
</body>
<script src="node_modules/vue/dist/vue.js" ></script>
<script>
    // 创建vue实例
    var app = new Vue({
        el: "#app", // el即element,该vue实例要渲染的页面元素
        data: { // 渲染页面需要的数据
            name: "龙哥",
            num: 5
        }
    });

</script>
  • 我们在data添加了新的属性:num
  • 在页面中有一个input元素,通过v-modelnum进行绑定。
  • 同时通过{{num}}在页面输出

效果:

VUE-快速入门_vue.js_14

我们可以观察到,输入框的变化引起了data中的num的变化,同时页面输出也跟着变化。

  • input与num绑定,input的value值变化,影响到了data中的num值
  • 页面{{num}}与数据num绑定,因此num值变化,引起了页面效果变化。

没有任何dom操作,这就是双向绑定的魅力。

3.3.4.事件处理

我们在页面添加一个按钮:

<button v-on:click="num++">点我</button>
  • 这里用v-on指令绑定点击事件,而不是普通的onclick,然后直接操作num
  • 普通click是无法直接操作num的。

效果:

VUE-快速入门_github_15