Vue:组件传值 全局组件 $set用法 splice()用法

156 阅读1分钟

1:组件传值

父传子

在父组件中定义一个v-bind的值 绑定在data的数据

子组件在在template下面添加一个props数组的形式添加父组件绑定的值的名字

image.png

子改父:

在子组件中定义一个方法:

使用$emit方法发送一个自定义事件,

在父组件中v-on绑定这个自定义事件并在Vue实例化对象的methods中添加这个方法

子组件代码如下:

components:{
        child: {
                    template: '#child',
                    //子组件使用props接收
                    props: ['cmsg'],
                    methods: {
                        change() {
                            //使用Vue里面的$emit方法发送一个自定义事件
                            this.$emit('childchange')
                            this.$emit('childchange','子改父','baba','erzi')
                        }
                    }
        }
   ```

父组件代码: image.png

二:全局组件
组件( Component)的概念:组件即自定义控件

组件的用途:组件能够封装可重用代码,扩展HTML标签功能组件的本质:自定义标签

组件的分类全局组件

作用域:不同作用域内均可使用局部组件

作用域:只在定义该组件的作用域内可以使用注意:

组件和vue实例类似,需要注册后才可以使用

组件名大写 浏览器会编译成小写 会找不到相应的组件 大写可以使用-加小写表示

可以在body标签中写template标签包裹 并且加上id

如果不用div标签包裹的话只会出现一个

示例:

    <template id="childA">
        <div>
            <h1>我是child1</h1>
            <h1>我是child1</h1>
            <h1>我是child1</h1>
        </div>     
    </template>
    Vue.component('child1',{
            template:'#childA'
        })

一、组件即自定义控件

组件分类:

1. 全局组件:

Vue.component('child1',{
            template:`<h1>我是child1</h1>`
        })
复制代码

2. 局部组件:

components:{
               son:{
                    template:`<h1>我是局部组件</h1>`
                }
            }

全局组件放在哪里都可以使用 局部组件只能放在挂载的实例化对象使用

2、this. $set()的用法

image.png

image.png

image.png

image.png

3、splice() 方法用于添加或删除数组中的元素。

注意: 这种方法会改变原始数组。

返回值:

如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。

image.png

image.png