长春火车站是哪个区,seo怎么去优化网站,微官网登录入口,南昌专业做网站的样式冲突
写在组件中的样式默认会全局生效。容易造成多个组件之间的样式冲突问题。 可以给组件加上scoped属性#xff0c;让样式只作用于当前组件。 原理#xff1a;
给当前组件模板的所有元素#xff0c;加上一个自定义属性data-v-hash值#xff0c;用以区分不同的组件。…样式冲突
写在组件中的样式默认会全局生效。容易造成多个组件之间的样式冲突问题。 可以给组件加上scoped属性让样式只作用于当前组件。 原理
给当前组件模板的所有元素加上一个自定义属性data-v-hash值用以区分不同的组件。CSS选择器都被添加[data-v-hash值] 属性选择器 data()函数
一个组件的data选项必须是一个函数。保证每个组件实例维护独立的一份数据对象。 每次创建新的组件实例都会新执行一个data函数得到一个新对象。
通信组件解决方案
父子关系
props和$emit
非父子关系
provide和injecteventbus
通用解决方案Vuex适合复杂业务场景。
父子通信
父组件通过props将数据传递给子组件子组件利用$emit通知父组件修改更新
跟Qt的信号槽机制很像。下面巩固一下v-bind:和v-on
props校验
类型校验非空校验默认值自定义校验 类型校验 props参数由数组改为对象。 参数名:参数类型 完整写法 props: {color: {type: String,//类型required: true,//是否必填default: blue,//默认值validator(value) {//自定义校验逻辑if (value)return true;//true为合法}}
},prop修改
prop传过来的数据不能直接改。 单向数据流父组件的prop更新回单向向下流动影响子组件。
eventBus事件总线
非父子组件之间进行简易消息传递。 复杂场景同Vuex。
创建一个都能访问到的事件总线空Vue实例接收方监听Bus实例事件.$on()发送方出发Bus实例事件.$emit()
provideinject
跨层级共享数据 provide() {return {//普通类型非响应式color: this.color,//复杂类型响应式userInfo: this.userInfo}},inject: [color, userInfo],v-model原理
原理v-model是一个语法糖。输入框中时是value属性和input属性的合写。
数据变视图跟着变:value视图变数据跟着变input
$event用于在模板中获取事件形参。
表单组件封装
父传子父组件props传递需要拆解v-model因为props传入的数据不允许被修改。 子传父监听输入子传父传值给父组件修改。
v- model简化代码封装
子组件中props通过value接收事件触发input。父组件中v-model给组件直接绑定数据:valueinput。
相关文档https://cn.vuejs.org/guide/components/v-model.html
.sync修饰符
作用子组件与父组件数据的双向绑定简化代码。 特点prop属性名可以自定义非固定为value。 场景封装弹窗类基础组件visible属性 true显示false隐藏。 本质:属性名和update:属性名的合写。 父组件命名方式:属性名.sync 子组件发送信号this.$emit(update:属性名,属性值)