Vue 给子组件传递参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 给子组件传递参数相关的知识,希望对你有一定的参考价值。

Vue 给子组件传递参数

  1. 首先看个例子吧

原文

html

<div class="container" id="app">
    <div class="row">
        <div class="col-sm-12">
            <h3>My Components</h3>
            <todo-item :todos="todos01"></todo-item>
        </div>
    </div>
</div>
<script type="x-template" id="component-todo">
    <ul class="list-group" v-if="todos && todos.length > 0">
        <li class="list-group-item" v-for="todo in todos" :class="{special: !todo.isSpecial}">
            {{todo.title}}
            <button class="btn btn-xs  pull-right" :class="{‘btn-success‘: todo.isSpecial,‘btn-danger‘: !todo.isSpecial }" @click="changeActive(todo)">
                {{todo.isSpecial ? DONE : What?}}
            </button>
        </li>
    </ul>
    <div v-else>
        <p>There isnt any todo</p>
    </div>
</script>

 

js

var todoItem = Vue.extend({
    template: ‘#component-todo‘,
    props: [‘todos‘],
    methods: {
        changeActive(todo) {
            todo.isSpecial = !todo.isSpecial;
        }
    }
})
Vue.component(‘todo-item‘, todoItem);
new Vue({
    el: ‘#app‘,
    data: {
        todos: [{
            id: 1,
            title: ‘zgo to shoping‘,
            isSpecial: false
        }, {
            id: 2,
            title: ‘jump for sport‘,
            isSpecial: true
        }, {
            id: 3,
            title: ‘welcome vueJs‘,
            isSpecial: true
        }],
        todos01: [{
            id: 1,
            title: ‘so so crazy‘,
            isSpecial: true
        }, {
            id: 2,
            title: ‘i v ini‘,
            isSpecial: false
        }, {
            id: 3,
            title: ‘nothing is there‘,
            isSpecial: true
        }]
    }
})

 

<todo-item :todos="todos01"></todo-item>

todos是组件中通过props传递过来的参数,todos01是组件上一层定义的

可以尝试将todos01换成todos看看效果

以上是关于Vue 给子组件传递参数的主要内容,如果未能解决你的问题,请参考以下文章

vue中组件通讯--子到父

Vue父组件道具没有传递给子组件

vue-router与父子组件传递参数

Vue - 将插槽传递给子组件[重复]

Vue把父组件的方法传递给子组件调用(评论列表例子)

将一串数据从父组件传递给子组件。 Vue.js 2