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

哪个网站可以领单做效果图网站开发需求评估

哪个网站可以领单做效果图,网站开发需求评估,计算机协会网站模板,wordpress鼠标滑过几何线条一、Prop属性 父——>子 单向同步 Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的,但是变化不会同步回其父组件。Prop装饰的变量和父组件建立单向的同步关系。Prop变量允许在本地修改,但修改后的变化不会同步回父组件。当父组…

一、@Prop属性 父——>子 单向同步
@Prop装饰的变量可以和父组件建立单向的同步关系。@Prop装饰的变量是可变的,但是变化不会同步回其父组件。@Prop装饰的变量和父组件建立单向的同步关系。@Prop变量允许在本地修改,但修改后的变化不会同步回父组件。当父组件中的数据源更改时,与之相关的@Prop装饰的变量都会自动更新。如果子组件已经在本地修改了@Prop装饰的相关变量值,而在父组件中对应的@State装饰的变量被修改后,子组件本地修改的@Prop装饰的相关变量值将被覆盖。

注意:
@Prop变量装饰器允许装饰的变量类型只有:string、number、boolean、enum类型 

二、@Link属性  父——>子 双向同步
子组件中被@Link装饰的变量与其父组件中对应的数据源建立双向数据绑定@Link变量装饰器说明允许装饰的变量类型Object、class、string、number、boolean、enum类型,以及这些类型的数组。类型必须被指定,且和双向绑定状态变量的类型相同。不支持any,不支持简单类型和复杂类型的联合类型,不允许使用undefined和null。不支持Length、ResourceStr、ResourceColor类型,Length、ResourceStr、ResourceColor为简单类型和复杂类型的联合类型。
被装饰变量的初始值:无。

@Entry
@Component
struct PageLink {@State message: string = 'Hello World'@State isShow:boolean =falsebuild() {Row() {Column() {nav({isShow:$isShow})if(this.isShow){textrr()}}.height('100%')}}
}@Component
struct nav{@Link isShow:booleanbuild(){Row(){Button("show").onClick(v=>{this.isShow=!this.isShow}).margin(20)}}
}
@Component
struct textrr{build(){Row(){Text("你好").margin(60)}}
}

三、嵌套类对象属性变化
@ObiectLink变量装饰器和@Observed类装饰器用于在涉及嵌套对象或数组的场景中进行双向数据同步。被@observed装饰的类,可以被观察到属性的变化。
子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是class obiect中的属性,这个属性同样也需要被@observed装饰。。单独使用@Observed是没有任何作用的,需要搭配@obiectLink或者@Prop使用
@Observed类装饰器:装饰class。需要放在class的定义前,使用new创建类对象
@ObiectLink变量装饰器:不与父组件中的任何类型同步变量。
允许装饰的变量类型:必须为被@Observed装饰的class实例,必须指定类型。不支持简单类型,可以使用@Prop。@ObiectLink的属性是可以改变的,但是变量的分配是不允许的,也就是说这个装。饰器装饰变量是只读的,不能被改变。


import myList from '../components/myListObserved'
import Item from '../model/ItemFlag'
@Entry
@Component
struct PageObserved {@State text: string = ''@State list: Item [] = [new Item(Date.now(), "房子"),new Item(Date.now(), "车子")]build() {Row() {Column() {Row(){CheckboxGroup({group:"checkBoxGroup"})Text("全选")Button("删除").onClick(v=>{this.list=this.list.filter(v=>!v.isChecked)}).margin({left:"20"}).backgroundColor(Color.Red)}.width("100%").margin({top:"10",left:'20'})Row() {TextInput({ text: this.text }).width(250).onChange((value) => {this.text = value})Button("增加").onClick(() => {this.list.push(new Item(Date.now(), this.text))this.text = ""}).margin(10)}.width("100%").justifyContent(FlexAlign.SpaceBetween).margin(10)List() {ForEach(this.list, (item, index) => {ListItem() {myList({ item, index, list: this.list})}.margin(10)})}.layoutWeight(1).divider({strokeWidth: 1,color: Color.Blue,startMargin: 10,endMargin: 10}).width('100%')}}.height('100%')}
}

import Item from '../model/ItemFlag';
//自定义组件  组件与组件之间是隔离的
@Component
struct myListObserved {@ObjectLink item: Item;private index: number;private list: Item [];build() {Row() {Checkbox({group:"checkBoxGroup"}).select(this.item.isChecked).onChange(v=>{this.item.isChecked=vconsole.log(JSON.stringify(this.item))})Text(this.item.text).fontSize(20).decoration({type:this.item.isChecked?TextDecorationType.Underline:TextDecorationType.None,color:Color.Blue})Button("删除").backgroundColor(Color.Red).onClick(() => {this.list.splice(this.index, 1)})}.justifyContent(FlexAlign.SpaceBetween).width("100%")}
}export default myListObserved
@Observed class ItemFlag {id: number;text: string;isChecked:boolean;constructor(id: number, text: string,isChecked=false) {this.id = idthis.text = textthis.isChecked=isChecked}
}export  default ItemFlag

四、与后代组件双向同步
@Provide和@Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间通过命名参数机制传递,@Provide和@Consume摆脱参数传递机制的束缚,实现跨层级传递。
其中@Provide装饰的变量是在祖先节点中,可以理解为被”提供”给后代的状态变量。@Consume装饰的变量是在后代组件中,去”消费(绑定)”祖先节点提供的变量。

1.装饰器参数:别名:常量字符串,可选。如果指定了别名,则通过别名来绑定变量,如果未指定别名,则通过变量名绑定变量。
2.同步类型:双向同步。从@Provide变量到所有@Consume变量以及相反的方向的数据同步。双向同步的操作与@State和@Link的组合相同。
3.允许装饰的变量类:Object、class、string、number、boolean、enum类型,以及这些类型的数组。不支持any.不支持简单类型和复杂类型的联合类型,不允许使用undefined和null。必须指定类型@Provide变量的@Consume变量的类型必须相同。说明不支持Length、ResourceStr、ResourceColor类型,Length、ResourceStr、ResourceColor为简单类型和复杂类型的联合类。

@Entry
@Component
struct PageProvide {@Provide('msg') message: string = 'Hello World'build() {Row() {Column() {Text("爷爷"+this.message).fontSize(50).fontWeight(FontWeight.Bold)Fahter()}.width('100%')}.height('100%')}
}@Component
struct Fahter{@Consume message:stringbuild(){Column(){Text("爸爸"+this.message).fontSize(50).fontWeight(FontWeight.Bold)Son()}}
}@Component
struct Son{@Consume msg:stringmessage:string ="nn"build(){Column(){Text("儿子"+this.msg).fontSize(50).fontWeight(FontWeight.Bold)Button("gaibian").onClick(v=>{this.msg="love world"})}}
}

 

http://www.yayakq.cn/news/355443/

相关文章:

  • 2015网站建设源码开封建设企业网站公司
  • wordpress渗透湘潭关键词优化报价
  • 湖州做网站建设的公司哪家好深圳十大劳务派遣公司排名
  • 女装网站建设网站建设都有哪些方面
  • 资源型网站建设 需要多大硬盘中山网站制作服务
  • 上海建站网站的企业网站建设丿金手指下拉9
  • 免费在线网页代理英文网站排名优化
  • 网站制作唐山公司制作华为手机网站建设规划书
  • 制作网制作网站建设的公司简单网站建设运营
  • 教做面食的网站做网站一般字号要做多少
  • 做招聘的网站有哪些内容wordpress首页如何增加模块
  • 集群网站建设湖南兼职网站建设
  • 如何查询网站域名备案容易做的网站
  • 邯郸有设计网站的吗校园二级网站建设
  • 网站服务器怎么进wordpress集成环境
  • 深圳企业建站平台建网站市场
  • 政务服务中心 网站建设深圳市建筑设计研究总院有限公司
  • 滁州建设网站网站开发课程设计总结
  • 网站备份怎么做wordpress主题去版权乱码
  • 昆明大型网站建设网站建设需要哪些硬件
  • 免费ai写作网站湖北二师网站建设排名
  • 2017做哪些网站能致富网站建设的合同条款
  • dw用层还是表格做网站快购买网站空间的方法
  • 企业网站备案信息网站开发工作量评估
  • 网站评论管理怎么做跟网站开发有关系的工作有哪些
  • 主播网站建设绵阳建设局网站皱劲松
  • 福田网站建设有限公司第三方网站备案
  • 阿里巴巴网站建设与维护百度搜索seo优化技巧
  • WordPress建站 用插件济南网站制作套餐
  • 南通科技网站建设wordpress 文章无法显示