继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Vue笔记之v-for及应用简易留言板的实现

李小圆_
关注TA
已关注
手记 4
粉丝 4
获赞 7

渲染列表指令:v-for
语法:v-for="value, index in array“ index可省略
作用在想要重复生成的标签上

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>v-for</title>
    <script src="./src/vue.js"></script>
</head>
<body>
<div id="app">
    <ul>
        <li v-for="(value, index) in list">{{value}}----{{index}}</li>
        <li v-for="value, key, index in obj">{{value}}----{{key}}</li>
    </ul>
</div>
<script>
    var vm = new Vue({
        el:'#app',
        data:{
            list:[1,2,3],
            obj:{
                a:4,
                b:5,
                c:6
            }
        }
    })
</script>
</body>
</html>

留言板
v-on v-model v-for的综合应用。
v-model="val" 将界面的输入数据写入vm中的val
v-on: click="sendHandle"使界面的click操作跳转至vm的methods中的sendHandle()
sendHandle()中的this即为vm,故其将vm中的val值存入了vm中的list
同时,v-for使得li标签输出了list中的所有value.title
由此可见,vm在view和model中起到的桥梁作用,真正实现了由viewModel对view和model进行管理操作。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>留言板</title>
    <script src="./src/vue.js"></script>
</head>
<body>
<div id="app">
    <input type="text" v-model="val"/>
    <input type="button" value="send" v-on:click="sendHandle"/>
    <ul>
        <li v-for="value in list">{{value.title}}</li>
    </ul>
</div>
<script>
    let list = [];
    //list一开始没有值,等ajax取值回来了,再改写list
    let vm = new Vue({
        el:'#app',
        data:{
            list,
            val:''
        },
        methods:{
            sendHandle(){
                this.list.push({
                    id:Date.now(),
                    title:this.val
                })
                this.val = '';
            }
        }
    })

    //模拟ajax
    setTimeout(function(){
        vm.list = [
            {
                id:123,
                title:'hello world'
            }
        ]
    }, 2000)
</script>
</body>
</html>
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP