vue.js 基础(1)

vue.js是什么

一个mvvm框架(库),和angulra类似
mvc:mvp mvvm mv* mvx

vue和angular的区别?
vue
-简单易学
-指令以v-xxx开头
-一片html代码配合json,在new出来vue实例
-个人维护项目
-适合移动端项目 ,小巧
angular
-上手难
-指令以ng-xxx开头
-所有属性和方法都挂到$scope上
-angular由google维护
共同点:不兼容低版本IE

示例

代码

<!DOCTYPE html>

<html>
    <head>
        <title></title>
        <meta charset="UTF-8"/>
        <link rel="stylesheet" type="text/css" href="test.css"/>
    </head>
    <body>
        声明式渲染
        <div id="app">
            {{message}}
        </div>
        <div id="app-2">
            <span v-bind:title="message">
                鼠标悬停
            </span>
        </div>
        条件与循环
        <div id="app-3">
            <p v-if="seen">现在你看到我了</p>
        </div>
        <div id="app-4">
            <ol>
                <li v-for="todo in todos">
                    {{todo.text}}
                </li>
            </ol>
        </div>
        处理用户输入
        <div id="app-5">
            <p>{{message}}</p>      
            <button v-on:click="reverseMessage">逆转消息</button>
        </div>
        表单输入与应用状态间的双向绑定
        <div id="app-6">
            <p>{{message}}</p>
            <input v-model="message"/>
        </div>
        组件化应用构建
        <div id="app-7">
            <!--创建一个todo-item组建的实例-->
            <ol>
                <!--现在为每个todo-item 提供todo对象,todo对象是变量(内容可以是动态的)。需为每个组件提供一个‘key’-->
                <!--v-bind 指令将待办项传到循环输出的每个组件中-->
                <todo-item  v-for="item in groceryList" v-bind:todo="item" v-bind:key="item.id"></todo-item>

            </ol>
        </div>
    </body>
</html>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script type="text/javascript">
//  声明式渲染
    var app = new Vue({
        el:'#app',
        data:{
            message:'Hello World!'
        }
    });
    var app = new Vue({
        el:'#app-2',
        data:{
            message:'页面加载于'+ new Date().toLocaleString()
        }
    });

//条件与循环
    var app3 = new Vue({
        el:"#app-3",
        data:{
            //seen:true
            seen:false
        }
    });
    var app4 = new Vue({
        el:"#app-4",
        data:{
            todos:[
                {text:'123'},
                {text:'456'},
                {text:'789'}
            ]
        }
    });
    app4.todos.push({text:"555"});
//处理用户输入
    var app5 = new Vue({
        el:'#app-5',
        data:{
            message:"Hello VUE.JS!"
        },
        //methods被命名为方法,它也是让我们调用在对象上下文中的函数,它可以操作对象中包含的数据。
        methods:{
            reverseMessage:function(){
                //split:用于把一个字符串分割成字符串数组.reverse:用于颠倒数组中元素的顺序。join:用于把数组中的所有元素放入一个字符串。
                this.message = this.message.split('').reverse().join('')    //字符串倒序输出
            }
        }
    });
//双向绑定
    var app6 = new Vue({
        el:'#app-6',
        data:{
            message:'Hello Vue!'
        }
    });
//组件化应用构建
//定义为todo-item的新组建
//component:组件
    Vue.component('todo-item',{
        //todo-item 组件现在接受一个‘prop’,类似于一个自定义特性.这个prop名为todo
        props:['todo'],
        template:'<li>{{todo.text}}</li>'
    });
    var app7 = new Vue({
        el:'#app-7',
        data:{
            groceryList:[
                {id:0,text:'aa'},
                {id:1,text:'bb'},
                {id:2,text:'cc'}
            ]
        }
    });
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值