Blogger Information
Blog 33
fans 0
comment 0
visits 24620
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
初识vue.js 20180929 23:00
EmonXu的博客
Original
1064 people have browsed it

一、VUE.JS的引入。

1、下载vue.js引入。

<script src="js/vue.js"></script>

2、CDN引入

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>

3、命令行方式

 (1). npm: 需要Node.js支持,配合前端资源打包器Webpack使用;

 (2). cli: 官方提供的脚手架工具,进一步简化了vue项目创建的难度,更加智能和自动化;

二、VUE.JS的基本术语:

    1. 实例: Vue.js本身就是一个构造函数,可以用来创建对象,使用Vue第一步,就是要创建一个Vue实例:new Vue();

    2. 实例参数: Vue()接受一个js字面量对象做为参数,所有的功能,都以对象属性的方式进行设置;

    3. 挂载点: Vue实例的作用域,本质上就是通过css选择器获取到的页面元素;

    4. 模板: 带有html标签的字符串;

    5. 值/变量: 挂载点中的文本内容;

    6. 属性: 描述模板或html标签;

    7. 事件: 模板或元素上发生的系统或用户事件,例如点击,移动等;

三、v-text,v-html变量渲染

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>挂载点与变量显示</title>
</head>
<body>
    <!--创建一个挂载点-->
    <div id="box">
        <!--以插值的方式显示内容-->
        {{message1}}

        <!--使用模板指令v-text显示一个变量-->
        <p v-text="message1"></p>

        <!--如果变量中有html标签-->
        <!--v-text指定是将变量内容原样输出,不会解析文本中的html标签-->
        <p v-text="message2"></p>

        <!--如果想显示一个带有html标签的字符串,需要用v-html指令:类似js中的innerHTML-->
        <p v-html="message2"></p>
    </div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script>
    // 创建Vue实例:用一个对象字面量做为参数
    new Vue({
        //绑定挂载点
        el: '#box',
        //data属性: 创建数据模型:对应MVVM设计模式中的Model层
        data: {
            //显示一个变量
            message1: 'Vue.js开发基础',
            //如果变量的内容是一个有html标签的文本
            message2: '<h3 style="color:red">php中文网</h3>'
        }
    });
</script>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

四、属性绑定v-bind和事件绑定v-on

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板,属性与事件</title>
</head>
<body>
<div>
    <!--创建一个挂载点-->
    <div id="box">
        <!--属性绑定-->
        <!--可以给模板标签绑定属性: v-bind -->
        <!--之前是直接用标签写列的-->
        <!--<h3 style="color:red;">{{message}}</h3>-->
        <!--vue实例也可以接管模板的属性,并实现绑定,使用v-bind指令-->
        <h3 v-bind:style="style">{{message}}</h3>
        <!--属性绑定是常用操作,Vue提供了简写指定: 冒号-->
        <h3 :style="style">{{message}}</h3>
        <!--此时,:style的值"style"已经不是一个普通字符串了,而是一个表达式,可以进行运算,例如字符串拼装-->
        <h3 :style="style + 'font-size:2rem;'">{{message}}</h3>

        <!--3.事件绑定-->
        <!--还可以给模板绑定事件: v-on:事件名称="事件方法"-->
        <!--事件对应的方法必须写到Vue实例中的methods属性中,该属性也是一个对象-->
        <h3 v-on:click="changeText">{{message}}</h3>
        <!--由于给模板添加事件是常用操作,所以Vue提供了一个简写语法:@-->
        <h3 @click="changeText">{{message}}</h3>
    </div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script>
    new Vue({
        // 绑定挂载点
        el: '#box',
        // 通过template属性给挂载点添加模板,它的优先级高于挂载点中的模板
        // template: '<h3 style="color:red">《JavaScript权威指南》</h3>'
        data: {
            message: '《JavaScript权威指南》',
            // 属性绑定也是写到data数据模型中
            style: 'color: blue;'
        },
        methods: {
            changeText: function () {
                this.message = "《Vue.js权威指南》";
            }
        }
    });
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

五、双向数据绑定

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>双向数据绑定</title>
</head>
<body>
<div id="box">
    <!--input标签的特点:即可显示内容,也可以输入内容/即更新内容-->
    <!--<input type="text">-->
    <!--给input绑定一个属性,与数据模型中的info也进行绑定: v-bind:value="info"-->
    <!--<input type="text" :value="info">-->
    <!--现在我的需求是: 当input中的内容发生变化时,对应的数据模型中的数据也会同步发生变化 -->
    <!--显然:v-bind指令无法完成,vue又提供一个v-model指令,可以实现模型中的数据随页面数据变化而变化-->
    <input type="text" v-model="info">


    <!--单向绑定: 页面中的数据内容由数据模型决定-->
    <!--双向绑定: 模型中的数据内容由页面中的数据决定-->
    <h3>{{info}}</h3>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script>
    new Vue({
        el: '#box',
        // 数据模型
        data: {
           info: 'html'
        }
    })
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

六、侦听器

侦听器:实时监测页面中数据的变化,实时更新数据模型中的属性,并完成指定的动作

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>侦听器</title>
</head>
<body>
<div id="box">
    用户名:<input type="text" v-model="username"> <br>
    <h3>{{length}}</h3>
    <h3 v-show="isShow" :style="warning">{{message}}</h3>
</div>

<script src="js/vue.js"></script>
<script>
    new Vue({
        el: '#box',
        data: {
            username: '',
            length: 0,
            message: '用户名太短',
            isShow: false,
            warning: 'color:red'
        },
        // 侦听器:实时监测页面中数据的变化,实时更新数据模型中的属性,并完成指定的动作
        watch: {
            // Vue是面向数据编程,侦听器当然也是面数据,所以watch中侦听的属性必须是页面中的变量
            username: function () {
                this.length++;
                if (this.length < 6) {
                    this.isShow = true;
                } else {
                    this.isShow = false;
                }
            }
        }
    });
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post