当前位置: 首页 > news >正文

网站开发Java与Python/搜索引擎营销的内容和层次有哪些

网站开发Java与Python,搜索引擎营销的内容和层次有哪些,青岛外贸推广,网站外链建设布局一、props 传参子组件定义 props 有三种方式:/ 第一种数组方式 props: [xxx, xxx, xxx] // 第二种对象方式 props: { xxx: Number, xxx: String} // 第三种对象嵌套对象方式 props: {xxx: {//类型不匹配会警告type: Number,default: 0,required: true,// 返回值不是 true,会警告…

一、props 传参

子组件定义 props 有三种方式:

/ 第一种数组方式
props: [xxx, xxx, xxx]
// 第二种对象方式
props: { xxx: Number, xxx: String}
// 第三种对象嵌套对象方式
props: {xxx: {//类型不匹配会警告type: Number,default: 0,required: true,// 返回值不是 true,会警告validator(val) { return val === 10}}
}

第三种对象默认支持 4 种属性,并且都是非必填的。可以随意使用

父组件传参的俩种方式:

第一种静态属性传参

注意:

在不定义 props 类型的情况下 props 接受到的均为 String。

当 props 属性指定为 Boolean 时,并且只有属性 key 没有值 value 时接受到的是 true

<!--props 接受到的均为 String -->
<children xxx="123"></children><!-- 有只有属性没有值, 这种情况 props 指定类型是 Boolean 则接收到的是 true -->
<children xxx></children>

第二种动态属性传参

注意:

需要区分非简写形式传入的值是对象,则会对应 props 中多个值

会保留传入值的类型

如果是表达式则获取到的是表达式的计算结果

<!-- prop 接收到 Number 类型的 123-->
<children :xxx="123"></children><!-- prop 接收到 Array 类型的 [1, 2, 3]-->
<children v-bind:xxx="[1, 2, 3]"></children><!-- prop 会接收到 xxx1 和 xxx2 俩个参数。这种不支持简写形式-->
<children v-bind="{xxx1: 1, xxx2: 2}"></children>

二、attrs 和listeners

$attrs

$attrs 会获取到 props 中未定义的属性(class 和 style 属性除外),支持响应式。常用的场景有俩种:

组件嵌套组件时可以使用 $attrs 来支持过多的属性支持。比如 elementUI 的 table 组件。支持的属性十几个,而平常封装的时候用的最多的也就一俩个。

属性默认是添加在父组件上的,有时候想把多余的属性添加在子组件上(可以结合 inheritAttrs: false 属性,让父属性不接受多余的属性)

$listeners

定义的事件都在子组件的根元素上,有时候想加到其他元素上。就可以使用 $listerners。它包含了父组件中的事件监听器(除了带有 .native 修饰符的监听器)

三、$emit 通知

Vue 默认有 $on $emit $once $off 几种方法来实现发布订阅模式,这也应用在了组件传参上。在组件上添加的特殊方法 @abc=“methods” 就相当于使用了 $on 来监听这个方法。因此组件内可以使用 $emit 来进行通知。

这里有一道考题: for 循环的时候如何拿到子组件的传值和 for 中循环的值

答案有俩种,一是 $event, 二是 闭包。只是需要注意 $event 只能获取到第一个值

<template v-for="item in [1, 2, 3]"><children @abc="((val, val2) => getValue(val, item))"></children>
</template>

四、v-model

这个其实是一种通过 emit,on 的组合方式。优点再于同步值方便,写法优雅。下面三种写法其实是一个意思

// 写法 1
<children v-model="a"></children>
{model: {prop: 'value',event: 'update:a',},methods: {a() { this.$emit('update:a', 1)}}
}// 写法 2
<children :a="a" @update:a="a = $event"></children>
{props: ['a']methods: {a() { this.$emit('update:a', 1)}}
}
// 写法 3 
// 1. 事件名必须是 update: + 属性名
// 2. 参数不能是表达式,最好是 data 里面的属性
<children :a.sync="a"></children>
{props: ['a']methods: {a() { this.$emit('update:a', 1)}}
}

五、插槽

<template><div><!--默认插槽--><slot></slot><!--另一种默认插槽的写法--><slot name="default"></slot><!--具名插槽--><slot name="footer"></slot><!--传参插槽--><slot v-bind:user="user" name="header"></slot></div>
</template><!--使用-->
<children><!--跑到默认插槽中去--><div>123</div><!--另一种默认插槽的写法--><template v-slot:default></template><!--跑到具名插槽 footer 中去--><template v-slot:footer></template><!--缩写形式--><template #footer></template><!--获取子组件的值--><template v-slot:header="slot">{{slot.user}}</template><!--结构插槽值--><template v-slot:header="{user: person}">{{person}}</template><!--老式写法,可以写到具体的标签上面--><template slot="footer" slot-scope="scope"></template>
</children>
http://www.lbrq.cn/news/1268461.html

相关文章:

  • 外贸通道支持asp的网站吗/seo搜索引擎优化招聘
  • 做程序教程网站赚钱吗/百度广告一级代理
  • 做网站的简称/湖南seo优化服务
  • 空气过滤棉上海网站建设/查询网址域名
  • 在线设计平台官网/百度seo算法
  • 如何查询网站使用什么框架做的/seo西安
  • 珠海做企业网站多少钱/网站统计分析工具的主要功能
  • 搜索引擎及门户网站介绍总结/上海搜索排名优化公司
  • 天河网站 建设seo信科分公司/做网站怎么优化
  • 做视频网站视频源/百度做广告多少钱一天
  • 建设网站诈骗是什么罪/windows优化大师官方免费
  • 游戏网站怎么做推广/太原百度快速优化
  • 七宝网站建设/使用 ahrefs 进行 seo 分析
  • 怎么做网站注册推广/如何对网站进行推广
  • 做推广任务的网站有哪些/东莞网站公司哪家好
  • 郑州做网站比较好公司/长沙seo推广公司
  • 泉州做网站开发公司/seo和sem分别是什么
  • 做破解网站合法/seo指什么
  • 商城网站seo/推广公司哪家好
  • 淘宝内部卷网站怎么做/seo排名优化培训怎样
  • html5网站建设思路/今日热点新闻事件
  • 做淘宝券推广的网站有哪些/公司页面设计
  • 高端的网站名称/附近成人电脑培训班
  • 新建南昌网站建设公司/上海网站seo排名优化
  • 交互式网站设计 深圳/最新网站查询
  • dw免费网站模板下载/推广网站文案
  • 网上设计网站/完整的品牌推广方案
  • 自驾游网站建设方案/谷歌代理
  • c2c电子商务网站需具备哪些业务功能/厦门人才网个人会员
  • 网泰网站建设网络/常州百度推广公司
  • eSIM技术深度解析:从物理芯片到数字革命
  • IMAP电子邮件归档系统Mail-Archiver
  • PyTorch 张量核心操作——比较、排序与数据校验
  • 为什么MCP协议是AI集成的未来API
  • 【Linux】Linux下基本指令
  • 使用Nginx部署前端项目