欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue item_01 基础示例简介

程序员文章站 2022-05-15 13:48:56
...

所有内容代码驱动,注释作了必要说明。来于官网,出自己实践。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>vue 之简介</title>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script>
</head>
<body>
    {{-- 示例一 --}}
    <div id="app" >
        声明式渲染: 
        @{{ message }}
    </div>

    <div id="app-2">
        动态绑定属性<br>
        指令:将这个元素节点的 title 特性和 Vue 实例的 message 属性保持一致<br>
        <span v-bind:title="message">
            鼠标悬停几秒钟查看此处动态绑定的提示信息!
        </span>
    </div>

    <div id="app-3">
        <p v-if="seen">现在你看到我了</p>
    </div>

    <div id="app-4">
        <p>循环  避免与blade模板变量冲空,使用了@符</p>
        <ol>
            <li v-for="todo in todos">
                @{{ todo.text }}
            </li>
        </ol>
    </div>

    <div id="app-5">
        <p>事件绑定 :click为vue实例的事件参数</p>
        <p>
            @{{ message }}
        </p>
        <button v-on:click="reverseMessage">逆转消息</button>
    </div>

    <div id="app-6">
        <p>表单绑定</p>
        <p>
            @{{ message }}
        </p>
        <input  v-model="message">
    </div>


    <div id="app-7">
        <p>子单元通过 prop 接口与父单元进行解耦。</p>
        <ol>
            <!--
      现在我们为每个 todo-item 提供 todo 对象
      todo 对象是变量,即其内容可以是动态的。
      我们也需要为每个组件提供一个“key”,稍后再
      作详细解释。
    -->
            <todo-item v-for="item in groceryList" v-bind:todo="item" v-bind:key="item.id"></todo-item>
        </ol>

    </div>

    <script>
        // 示例1
        var app = new Vue({
            el:"#app",
            data:{
                message:'statement vue!'
            }
        });

        // 示例2
        var app2 = new Vue({
            el:'#app-2',
            data:{
                message:'页面加载于'+ new Date().toString()
            }
        })

        // 条件
        // 浏览器控制台,使用app3.seen= false;响应体内容不可见
        var app3 = new Vue({
            el:'#app-3',
            data:{
                seen:true
            }
        })

        // 循环
        var app4 = new Vue({
            el:'#app-4',
            data:{
                todos:[ 
                { text:'列表 JavaScript' },
                { text:'列表 Vue' },
                { text:'列表牛项目' }
            ]}
        });

        // 添加新项目
        app4.todos.push({ text: '新项目' })


        // 处理用户输入 
        // 更新了应用状态,但没有触碰Dom,所有的Dom操作由vue来处理
        var app5 = new Vue({
            el:'#app-5',
            data:{
                message:'Hello Vue.js',
            },
            methods:{
                reverseMessage:function(){
                    this.message = this.message.split('').reverse().join('')
                }
            }
        })


        // 表单输入和应用状态间的双向绑定
        // 实际上是vue实例事件系统 与 Dom渲染相结合 
        var app6 = new Vue({
            el: '#app-6',
            data:{
                message:'Hello Vue!'
            }
        })

        // 组件化应用构建,  先定义组件后使用
        // 在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例。
        // 定义名为 todo-item 的新组件
        // 关键js中array是引用类型
        Vue.component('todo-item',{
            props:['todo'],
            template:'<li>@{{ todo.text }}</li>'
        })

        var app7 = new Vue({
            el:'#app-7',
            data:{
                groceryList:[
                    { id: 0, text: '蔬菜' },
                    { id: 1, text: '奶酪' },
                    { id: 2, text: '随便其它什么人吃的东西' }
                ]
            }
        })

        app7.groceryList.push({id:3,text:'我是pardon'});

    </script>
</body>
</html>
相关标签: vue教程