vue - 父组件数据变化控制子组件类名切换

先说当时的思路和实现
核心是父子组件传值和v-bind指令动态绑定class实现

1. 父组件引用、注册、调用子组件
script中引用

import child from ‘../components/Child‘

export中注册

export
default {
    name: ‘Home‘,
    components: {
        child
    },
}

template中调用(pug写法)

child()

2. 父组件准备数据并处理

data() {
    return {
        classNames: ‘‘;
    }
}
created() {
    this.className = ‘hhh‘;
}

3. 父组件传值给子组件

child(v-bind:className = "className")

4. 子组件接收

export
default {
    props: [‘className‘]
}

5. 子组件内部、动态绑定class

div(v-bind:class="[‘className‘]")

6. 绑定完毕后,父组件数据变化将影响子组件

但其实后来发现更方便的做法,直接在父组件上动态修改类名,

然后根据css选择器的嵌套来达到数据不同,样式展示不同的目的,而不一定必要地去改子组件的类名。

【捂脸】

原文地址:https://www.cnblogs.com/padding1015/p/9669684.html

时间: 2024-08-29 16:47:55

vue - 父组件数据变化控制子组件类名切换的相关文章

vue教程3-05 vue组件数据传递、父子组件数据获取

vue教程3-05 vue组件数据传递 一.vue默认情况下,子组件也没法访问父组件数据 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="bower_components/vue/dist/vue.js"><

vue子组件数据变化同步到父组件中

方法:通过watch监听子组件数据变化 1.父组件中注册方法 <Child @getChildValue="getChildValue"></Child> 2.子组件中通过watch监听数据变化,数据变化时通过$emit来触发方法传参 <template> <div class="child"> <p>子组件同步数据到父组件</p> <input type="text"

vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题

Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素,它是通过使用PostCSS来改变以下内容实现的: <style scoped> .example { color: red; } </style> <template> <div class="example">hi</div> </

vue--父组件向子组件传参--父组件定义v-bind:参数名--子组件接收props----子组件调用父组件的方法(子组件向父组件传参)父组件@事件名称--子组件接收this.$emit

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

父组件接收子组件事件的参数===子组件给父组件传值===子组件调用(绑定)父组件的方法

子组件调用(绑定)父组件的方法===父组件接收子组件事件的参数===子组件给父组件传值 就相当于父组件给子组件传递了一个方法,子组件触发这个方法,也就相当于父组件调用了这个方法 可以说是互相影响,数据双向绑定 子组件 <div @click="clickCell(参数)"> props:{ clickCell:{ type:Function, default: function(){} } } 父组件 <子组件名 :clickCell="dealClickC

react ,父子调用子组件的方法与子组件调用父组件的方法

1.父组件调用子组件的方法给子组件的标签 定义一个属性,例如 ref="zizu" ------------- 父组件通过,this.refs.biaoji.dream('哈哈') //调用子组件的dream方法 2.子组件调用父组件的方法 2.1.首先父组件需要通过给子组件自定义属性,把方法传递给子组件.2.2.子组件通过this.props 接收父组件的方法,this.props.方法名称().这样就可以调用父组件的方法了 原文地址:https://www.cnblogs.com/

vue中父组件如何监听子组件值的变化

vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组件传来的值: 3:父组件可以通过this.$refs.name.去访问子组件的值或方法: 4:子组件可以通过this.$parent.去访问父组件的值或方法: 总结了一下,感觉好像挺全面的,好像不缺啥了.... 但是仔细一想,父组件如何去监听子组件的值呢?如何根据子组件中的某个值的变化,父组件作出响

vue 父组件动态传值给子组件的方法

父组件: <uni-collapse-item title="标题信息" ref="child1" thumb="../../static/send-goods.png"></uni-collapse-item> this.$refs.child1.childMethod(res.data.count) //调用子组件的函数,并把这个状态传过去. 子组件: data () { return { childVal:'' }

uni-app 父组件引用子组件时怎么调用子组件的方法

1.写一个简单的子组件main/index.vue: <template> <view></view> </template> <script> export default { data(){ return {} }, methods:{ childMethod() { console.log('childMethod do...') } } } </script> <style> </style> 在子组件