Vue.js,学习心得(八)心得七的附录:单独实例

学习心得,
列表渲染,

直接上代码了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>列表渲染单独实例</title>
    <script src="../js/vue.js"></script>
</head>
<body>
<!--下面是一个简单的 todo list 的完整例子:-->
    <div id="todo-list-example">
        <input
            v-model="newTodoText"
            v-on:keyup.enter="addNewTodo"
            v-bind:placeholder="plholder"
        >
        <ul>
            <li
                is="todo-item"
                v-for="(todo, index) in todos"
                v-bind:key="todo.id"
                v-bind:title="todo.name"
                v-on:remove = "removemod(index)"
            ></li>
        </ul>
    </div>
<!--<!–注意这里的 is="todo-item" 属性。-->
<!--<em" 属性。--用 DOM 模板时是十分必要的,因为在 <ul> 元素内只有 <li> 元素会被看作有效内容。–>-->
<!--这样做实现的效果与 <todo-item> 相同,但是可以避开一些潜在的浏览器解析错误。-->
<!--查看 DOM 模板解析说明 来了解更多信息。–>-->

<script>
    //首先,注册一个组件
    // todo-item 组件现在接受一个
    // "prop",类似于一个自定义属性,props通信用的,
    // 相当于只接受title信号.接到后开始遍历template模板
    // 这个属性名为 todo。
//    is="todo-item" 为了避免浏览器潜在BUG,给合法的标签独立命名,
    // 以便于Vue.component中注册的 todo-item 组件 进行模板加载
    //$emit(调用函数名,[参数1,参数2]) vue的特有用法
    Vue.component('todo-item',{
        template:'<li>' +
        '{{title}}' +
        '<button v-on:click="$emit(\'remove\')">(删除)X</button>' +
        '</li>',
        props:['title']

    });

    var app1 = new Vue({
        el:"#todo-list-example",
        data:{
            newTodoText: "",
            nextTodoId: 4,
            plholder:"Add a todo(添加一个todo)",
            todos:[
                {
                    id: 0,
                    name: "我是one"
                },
                {
                    id: 1,
                    name: "我是two"
                },
                {
                    id: 2,
                    name: "我是three"
                },
                {
                    id: 3,
                    name: "我是four"
                }
            ]
        },
        methods:{
            //向todos数组中添加数据
            addNewTodo:function(){
                this.todos.push({
                    id: this.nextTodoId++,
                    name:this.newTodoText
                });
                this.newTodoText = ""
            },
            removemod:function(index){
                this.todos.splice(index,1);
                nextTodoId = this.nextTodoId--;
            }
        }
    })
</script>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,119评论 25 709
  • 2015,11,20。周五。霾。 下午去了老爸干活的地方,陪他呆了段时间,去他住的地方帮他打包了行李。 进到屋子里...
    我没有生来勇敢阅读 2,944评论 0 0
  • delete删除数组元素 用 delete 的区别(in 操作符) arr.length -= 1; // 出去末...
    sunorry阅读 2,383评论 0 4
  • 规则一:运动增加大脑活力运动能增加大脑氧气供应,从而提高思考效率。行动指南:1、运动的时候思考问题,尤其是难题;2...
    everfight阅读 1,702评论 0 0

友情链接更多精彩内容