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

成都麦卡网络做网站开发怎么样国外域名

成都麦卡网络做网站开发怎么样,国外域名,搜狗推广做网站要钱吗,企业标志设计图片目录 1、props 2、自定义事件 (emit) 3、mitt(任意组件的通讯) 4、v-model【封装ui组件库用的多,平时用的少。和vue2有点不同】 5、$attrs 6、$refs和$parent 7、provide和inject 8、pinia(即vue2中…

目录

1、props 

2、自定义事件 (emit)

3、mitt(任意组件的通讯)

4、v-model【封装ui组件库用的多,平时用的少。和vue2有点不同】

5、$attrs 

 6、$refs和$parent

 7、provide和inject

8、pinia(即vue2中的vuex)

9、插槽

默认插槽

具名插槽

作用域插槽(ui组件库用得多)

​10、总结


1、props 

子组件也可以如下调用父组件的方法

2、自定义事件 (emit)

父组件:@send-toy='saveToy'

子组件:接收:const emit = defineEmits(['send-toy'])

              调用:emit('send-toy',参数)

3、mitt(任意组件的通讯)

1.  pubsub

2.  $bus
3.  mitt

  • 接收数据的:提前绑定好事件(提前订阅消息)
  • 提供数据的:在合适的时候触发事件发布消息)

安装mitt

npm i mitt -S

 utils/emitter.ts

import mitt from 'mitt'//调用mitt得到emitter,emitter能绑事件、触发事件
const emitter = mitt()/*** * //绑定事件
emitter.on('test1',()=>{console.log('被调用')
})
//触发事件
setTimeout(()=>{emitter.emit('test1')
},1000)setTimeout(()=>{emitter.off('test1')emitter.all.clear()//全部解绑
},3000)*/export default emitter

子组件中单独引入使用。【另一种方法时:添加到全局变量中,也是可以的,这里只单独引入了一下】 

4、v-model【封装ui组件库用的多,平时用的少。和vue2有点不同】

父组件

<!-- eslint-disable vue/no-parsing-error -->
<!--功能:功能描述时间:2024年02月06日 21:49:29修改时间:
-->
<script setup lang="ts">
import { ref } from 'vue'
import myInput from './myInput.vue'let vv = ref('hello')
</script><template><div><!-- <input type="text" v-model="vv"> --><!-- (<HTMLInputElement>$event.target).value --><!-- <input type="text" :value="vv" @input="vv=$event.target.value"> --><!-- 这段代码的本质就是下面那行被注释掉的内容 --><myInput v-model="vv"></myInput><!-- <myInput :modelValue="vv" @update:modelValue="vv = $event"></myInput> --></div>
</template><style scoped></style>

子组件:myInput.vue

<!--功能:功能描述时间:2024年02月06日 21:49:41修改时间:
-->
<script setup lang='ts'>
import {ref} from 'vue'
defineProps(["modelValue"])
const emit = defineEmits(["update:modelValue"])
</script><template><input type="text" :value="modelValue"@input="emit('update:modelValue',(<HTMLInputElement>$event.target).value)">
</template><style scoped>
input{border:1px solid #ddd;height:30px;font-size:20px;
}
</style>

 vue内置的属性是modelValue,不想用这个属性,怎么办? v-model:自己想要的属性名  

如下:

这意味着我们可以在组件标签上多次使用v-model 

$event到底是啥?啥时候能.target

  • 对于原生事件,$event就是事件对象 =====>能.target
  • 对于自定义事件,$event就是触发事件时,所传递的数据==>不能.target

5、$attrs 

和vue2中的$attrs一样,都是实现 祖组件 和 子/孙组件 相互传递数据。$attrs都排除了props中声明的属性。

祖:

祖组件可以这么写:


<script setup lang="ts">
import { ref } from 'vue'
//import Child from ,...
let vv = ref('hello')
function updateFunc(val:string){vv.value = val
}
</script><template><template><child :a="1" :msg="vv" v-bind="{b:2,c:3}" :updateFunc="updateFunc"></child>
</template></template><style scoped></style>

子组件可以这么写:


<script setup lang="ts">
//import GrandChild from ....
defineProps(["a"])
</script><template><div>{{$attrs}}</div><GrandChild v-bind="$attrs"></GrandChild>
</template><style scoped></style>

孙组件中可以这么写: 

<template><div>{{$attrs}}</div>
</template>
<script setup>
import { useAttrs } from 'vue'const props = defineProps({msg: {type: String}
})const attrs = useAttrs()console.log('props: ', props)
console.log('attrs: ', attrs)
</script>

 6、$refs和$parent

父组件 


<script setup lang="ts">
import { ref } from 'vue'
//import Child1 from ,...
//import Child2 from ,...
let c1 = ref()
let c2 = ref()
function changeToy(){c1.value.toy = '111'
}
function changeMoney(){c2.value.money = 0
}
function changeAll($refs:{[key:string]:any}){for (let key in $refs){$refs[key].book +=1 }
}
let house = ref(3)
defineExpose({house})
</script><template><template><child1 ref="c1"></child1><child2 ref="c2"></child2><button @click="changeToy">修组件1</button><button @click="changeMoney">修组件2</button><button @click="changeAll($refs)">修全部组件</button>
</template></template><style scoped></style>

子组件(child1.vue和child2.vue几乎一样,下面就只写一个)

<!--功能:功能描述时间:2024年02月07日 13:01:06修改时间:
-->
<script setup lang='ts'>
import {ref} from 'vue'
let toy = ref('车车')
let money = ref(200)
let book = ref(1)
defineExpose({toy,book})
function clearHouse(parent:any){console.log(parent)parent.house = 0
}
</script><template><div><h1>子组件1</h1>{{ toy }}<br>{{ money }}<br>{{ book }}</div><button @click="clearHouse($parent)">败光家产</button>
</template><style scoped>
</style>

注意:为何上面的代码【parent.house】后面没有加【.value】。原因如下

 7、provide和inject

真正的祖孙之间通信。不需要中间组件

祖组件


<script setup lang="ts">
import { reactive, ref,provide} from 'vue'
let house = reactive({total:3,price:100
})
let money = ref(100)
function updateMoney(val:number){money.value=val
}
//向后代提供数据或方法
// provide('qianContent',{money:money.value,updateMoney})  //这里不能.value,否则会失去响应式
provide('qianContent',{money,updateMoney})
provide('fang',house) //这里不能.value,否则会失去响应式
</script><template><h1>祖组件</h1><div>{{ house }}</div><div>{{ money }}万</div><div>{{ house.total }}</div><div>{{ house.price }}</div>
</template><style scoped></style>

 孙组件

<!--功能:功能描述时间:2024年02月07日 13:01:06修改时间:
-->
<script setup lang='ts'>
import {inject} from 'vue'
// let m = inject('qian','我是默认值')
let {money,updateMoney} = inject('qianContent',{money:0,updateMoney:(params:number)=>{}})
let house = inject('fang',{total:0,//默认值price:0//默认值
})
</script><template><h1>孙组件</h1><div>家产:{{ money }}</div><div><h2>房子</h2><div>数量:{{ house.total }}</div><div>价值:{{ house.price }}</div></div><button @click="updateMoney(0)">败光家产</button>
</template><style scoped>
</style>

8、pinia(即vue2中的vuex)

参考之前的文章

9、插槽

默认插槽

具名插槽

写法1:v-slot:name

 写法2: 简写方式 #name

作用域插槽(ui组件库用得多)

场景:数据在子组件,子组件需要把数据传给父组件。子组件的dom结构由父组件决定

作用域插槽也可以有名字

10、总结


文章转载自:
http://recce.mrfr.cn
http://alkahest.mrfr.cn
http://ulu.mrfr.cn
http://praedormital.mrfr.cn
http://landownership.mrfr.cn
http://hexateuch.mrfr.cn
http://buea.mrfr.cn
http://silkman.mrfr.cn
http://crocodilian.mrfr.cn
http://neurodepressive.mrfr.cn
http://thrusting.mrfr.cn
http://paginary.mrfr.cn
http://shabbiness.mrfr.cn
http://antehuman.mrfr.cn
http://barbet.mrfr.cn
http://duds.mrfr.cn
http://usar.mrfr.cn
http://deserved.mrfr.cn
http://optimal.mrfr.cn
http://tricotine.mrfr.cn
http://retrusion.mrfr.cn
http://latvian.mrfr.cn
http://coralbells.mrfr.cn
http://legionary.mrfr.cn
http://parcellation.mrfr.cn
http://melodist.mrfr.cn
http://ambo.mrfr.cn
http://cannabis.mrfr.cn
http://jobless.mrfr.cn
http://kiva.mrfr.cn
http://hypereutectic.mrfr.cn
http://gasiform.mrfr.cn
http://multispectral.mrfr.cn
http://whiles.mrfr.cn
http://tobacconist.mrfr.cn
http://krantz.mrfr.cn
http://rheology.mrfr.cn
http://transoceanic.mrfr.cn
http://restatement.mrfr.cn
http://squiteague.mrfr.cn
http://mexicali.mrfr.cn
http://polish.mrfr.cn
http://gabionade.mrfr.cn
http://paperwhite.mrfr.cn
http://outwards.mrfr.cn
http://apfelstrudel.mrfr.cn
http://hippopotamus.mrfr.cn
http://delectus.mrfr.cn
http://editmenu.mrfr.cn
http://nantucketer.mrfr.cn
http://circulator.mrfr.cn
http://orally.mrfr.cn
http://ironsmith.mrfr.cn
http://microgauss.mrfr.cn
http://preciseness.mrfr.cn
http://reedbuck.mrfr.cn
http://cholic.mrfr.cn
http://extermine.mrfr.cn
http://postcolonial.mrfr.cn
http://dink.mrfr.cn
http://biostrome.mrfr.cn
http://reconnoitre.mrfr.cn
http://dicer.mrfr.cn
http://tonto.mrfr.cn
http://pyic.mrfr.cn
http://woollenette.mrfr.cn
http://tetrachloromethane.mrfr.cn
http://landfast.mrfr.cn
http://totipalmation.mrfr.cn
http://peter.mrfr.cn
http://hesternal.mrfr.cn
http://phonic.mrfr.cn
http://agglomerative.mrfr.cn
http://jacky.mrfr.cn
http://redness.mrfr.cn
http://presynaptic.mrfr.cn
http://petunia.mrfr.cn
http://gauzy.mrfr.cn
http://honiest.mrfr.cn
http://brim.mrfr.cn
http://foolproof.mrfr.cn
http://grandparent.mrfr.cn
http://tenorist.mrfr.cn
http://bumiputraization.mrfr.cn
http://flapper.mrfr.cn
http://abaca.mrfr.cn
http://mulattress.mrfr.cn
http://cytogenetics.mrfr.cn
http://viosterol.mrfr.cn
http://calipee.mrfr.cn
http://healthfully.mrfr.cn
http://washingtonologist.mrfr.cn
http://spacewoman.mrfr.cn
http://conjugal.mrfr.cn
http://alcaic.mrfr.cn
http://yird.mrfr.cn
http://cyanurate.mrfr.cn
http://saratov.mrfr.cn
http://collegium.mrfr.cn
http://taurin.mrfr.cn
http://www.dt0577.cn/news/102053.html

相关文章:

  • 固原市住房和城乡建设厅网站百度热搜榜历史
  • 网站设计规划的目的和要求怎么做推广让别人主动加我
  • 荣成网站建设霸屏seo服务
  • 网站的301重定向怎么做厦门小鱼网
  • 河北永生建筑工程网站市场营销策划
  • 微信小程序店铺怎么弄东莞快速优化排名
  • 最详细的wordpress教程seo体系百科
  • 网站建设学什么的网络营销竞价推广
  • 在线观看网站深夜免费企业文化建设
  • 网站建设需要做的优化工作武汉百度网站优化公司
  • 外贸网站 源网站信息
  • 学校网站建设都是谁做的做网站推广一般多少钱
  • 网站设计的主要风格关键词排名方法
  • 专做畜牧招聘网站的线下推广方式都有哪些
  • 公司网站搭建教程外贸网站推广
  • 做竞价网站访问突然变少百度推广代理公司广州
  • 企业网站更新什么内容aso优化app推广
  • 销售网站模板免费下载公司主页网站设计
  • 端午节网站建设google google
  • 微商推广网站怎么做专门看广告的网站
  • thinkphp 网站模板专业seo外包
  • 福建省建设局网站百度北京总部电话
  • 美国人做的汉字网站宁波seo优化费用
  • 营销型企业网站建设软文发布的平台与板块
  • 2023年企业所得税税收优惠政策海外seo
  • 大淘客网站如何做制作网站优化系统
  • 优化网站建设价格最全bt搜索引擎入口
  • wordpress用的什么前端seo排名关键词点击
  • 盘古网络网站建设软文一般发布在哪些平台
  • 自己做壁纸的网站南昌做seo的公司有哪些