初识vue

API:https://cn.vuejs.org/v2/api/

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

1.声明式渲染

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>声明式渲染</title>
    <script src="../static/vue.js"></script>
</head>
<body>
<div id="app">
    {{message}}
</div>

<script>
    var app=new Vue({
        el:'#app',
        data:{
            message:'Hello Vue!'
        }
    })
</script>
</body>
</html>

 

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>声明式渲染</title>
    <script src="../static/vue.js"></script>
</head>
<body>
<div id="app-2">
    <span v-bind:title="message">
        鼠标悬停几秒钟查看此处动态绑定的提示信息!
    </span>
</div>

<script>
    var app2 = new Vue({
        el: '#app-2',
        data: {
            message: '页面加载于 ' + new Date().toLocaleString()
        }
    })
</script>
</body>
</html>

2.条件与循环

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>条件与循环</title>
    <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app-3">
    <p v-if="seen">可以看见我吗</p>
</div>

<script type="text/javascript">
    var app3 = new Vue({
        el: "#app-3",
        data: {
            seen: true
        }
    })
</script>
</body>
</html>

 在控制台输入 app3.seen = false,你会发现之前显示的消息消失了。

v-for 指令可以绑定数组的数据来渲染一个项目列表:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>条件与循环</title>
    <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app-4">
    <ol>
        <li v-for="todo in todos">
            {{todo.text}}
        </li>
    </ol>
</div>

<script type="text/javascript">
    var app4 = new Vue({
        el: "#app-4",
        data: {
            todos: [
                {text: 'javascript'},
                {text: 'vue'},
                {text: "html"}
            ]
        }
    })
</script>
</body>
</html>

 在控制台里,输入 app4.todos.push({ text: 'golang' }),会在列表最后添加了一个新项目。

3.处理用户输入

为了让用户和你的应用进行交互,我们可以用 v-on 指令添加一个事件监听器,通过它调用在 Vue 实例中定义的方法:

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>处理用户输入</title>
    <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app-5">
    <p>
        {{message}}
    </p>
    <button v-on:click="reverseMessage">反转消息</button>
</div>

<script type="text/javascript">
    var app5 = new Vue({
        el: "#app-5",
        data: {
            message: 'Hello Vue.js!'
        },
        methods: {
            reverseMessage: function () {
                this.message = this.message.split('').reverse().join('')
            }
        }
    })
</script>
</body>
</html>

 Vue 提供了 v-model 指令,它能轻松实现表单输入和应用状态之间的双向绑定。

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>处理用户输入</title>
    <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app-6">
    <p>
        {{message}}
    </p>
    <input v-model="message">
</div>

<script type="text/javascript">
    var app6 = new Vue({
        el: "#app-6",
        data: {
            message: 'Hello Vue!'
        }
    })
</script>
</body>
</html>

4.组件化应用构建 

组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许使用小型、独立和通常可复用的组件构建大型应用。仔细想想,几乎任意类型的应用界面都可以抽象为一个组件树:

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>组件化应用构建</title>
    <script src="../static/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app-7">
    <ol>
        <todo-item
                v-for="item in gList"
                v-bind:todo="item"
                v-bind:key="item.id"
        ></todo-item>
    </ol>
</div>

<script type="text/javascript">
    Vue.component('todo-item', {
            props: ['todo'],
            template: '<li>{{todo.text}}</li>'
        }
    )

    var app7 = new Vue({
        el: '#app-7',
        data: {
            gList: [
                {id: 0, text: '橘子'},
                {id: 1, text: "苹果"},
                {id: 2, text: "其他"}
            ]
        }
    })
</script>
</body>
</html>

 

posted on 2020-07-28 16:59  lina2014  阅读(37)  评论(0编辑  收藏  举报

导航