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

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

作者: 战神飘雪 | 来源:发表于2017-11-01 14:26 被阅读4次

学习心得,
列表渲染,

直接上代码了

<!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>

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/ulfgpxtx.html