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

烟台网站建设靠谱企汇互联见效付款网络营销最新案例

烟台网站建设靠谱企汇互联见效付款,网络营销最新案例,做网站用买服务器码,走出趣网站怎么做setup(props, context) {... }一、参数 使用setup函数时,它将接受两个参数: propscontext 让我们更深入地研究如何使用每个参数 二、Props setup函数中的第一个参数是props。正如在一个标准组件中所期望的那样,setup函数中的props是响应…
setup(props, context) {...
}

一、参数

使用setup函数时,它将接受两个参数:

  • props
  • context

让我们更深入地研究如何使用每个参数

二、Props

setup函数中的第一个参数是props。正如在一个标准组件中所期望的那样,setup函数中的props是响应式的,当传入新的prop时,它将被更新。

export default {props: {title: String},setup(props, context) {console.log(props.title)...}
}

Warning:因为props是响应式的,你不能使用ES6解构,因为它会消除prop的响应式。

如果需要解构prop,可以通过使用setup函数中的toRefs来安全地完成此操作

import { toRefs } from 'vueexport default {props: {title: String},setup(props, context) {const { title } = toRefs(props)console.log(title.value)...}
}

三、context

context参数是一个普通的javascript对象,它对组件暴露三个属性:attrs、slots、emit。

export default {setup(props, context) {// Attribute(非响应式对象)console.log(context.attrs)// 插槽(非响应式对象)console.log(context.slots)// 触发事件(方法)console.log(context.emit)}
}

context是一个普通的JavaScript对象,也就是说,它不是响应式的,这意味着你可以安全地对context使用ES6解构。

export default {setup(props, { attrs, slots, emmit }) {...}
}

attrs和slots是有状态的对象,它们总是会随组件本身的更新而更新。这意味着你应该避免对它们进行解构,并始终以attrs.x或slots.x的方式引用property。

请注意,与props不同,attrs和slots是非响应式的。如果你打算根据attrs或slots更改应用副作用,那么应该在onUpdated生命周期钩子中执行此操作。

访问组件的property

执行setup时,组件实例尚未被创建。因此,你只能访问以下property:

  • props
  • attrs
  • slots
  • emit

换句话说,你将无法访问以下组件选项:

  • data
  • computed
  • methods

在setup()内部,this不会是该活跃实例的引用因为setup()是在解析其他组件选项之前被调用的,所以setup()内部的this的行为与其他选项中的this完全不同。这在和其他选项式 API一起使用setup()时可能会导致混淆。

1、attrs

用途:当父组件传递数据给子组件时,子组件不通过props接收,那么父组件传递的数据就到了setup中的context的attrs属性。

<div id="app">
<!-- 父组件传递数据给子组件 -->
<son webName="自如初"></son>
</div><script>
const app = Vue.createApp({
});// 子组件不使用props接收
app.component('son', {template:`<div>son</div>`,setup(props, context) {const { attrs, slots, emit} = context;// 打印父组件传递的数据console.log(attrs.webname);return {};}
});
const vm = app.mount('#app');
</script>

2、slots

用于接收渲染父组件传递的插槽内容

<div id="app">
<son>父组件通插槽传递的内容
</son>
</div><script>
const app = Vue.createApp({
});app.component('son', {template:`<div>son</div>`,setup(props, context) {const { h } = Vue;const { attrs, slots, emit} = context;// 显示父组件传递的内容return () => h('p', {}, slots.default());}
});
const vm = app.mount('#app');
</script>

3、emit

向父组件触发事件。

<div id="app">
<!-- 4、父组件监听子组件发射的事件 -->
<son @sclick="getData"></son>
</div><script>
const app = Vue.createApp({methods: {// 5、实现事件getData () {alert(1)}}
});app.component('son', {// 1、子组件中绑定事件template:`<div @click="sonClick">son</div>`,setup(props, context) {const { attrs, slots, emit} = context;function sonClick() {// 2、通过 emit 向父组件发射事件emit('sclick');}// 3、对外暴露该事件return { sonClick };}
});
const vm = app.mount('#app');
</script>

4、使用渲染函数

setup还可以返回一个渲染函数,该函数可以直接使用在同一作用域中声明的响应式状态:
在这里插入图片描述
在这里插入图片描述

http://www.tj-hxxt.cn/news/63145.html

相关文章:

  • 国内新闻最新消息10条2023seo关键词推广优化
  • 做ppt的兼职网站智推教育seo课程
  • 建立个人网站的成本打开百度网页
  • 男女做那个的真实视频网站国际新闻稿件
  • 做淘宝客网站用什么系统吗网络营销的目的是
  • 个人做的卖货网站百度快速收录软件
  • 做侵权网站用哪里的服务器稳网络广告营销策略
  • 青岛永诚网络科技有限公司整站优化 快速排名
  • 网络连接东莞网站建设优化排名
  • 公司和个人均不能备案论坛类网站东莞网站推广宣传
  • 盘古网络网站建设百度在线搜索
  • 从做系统后以前的网站打不开了seo站长常用工具
  • 北京网站备案查询企业管理培训免费课程
  • 做二手房产网站多少钱深圳百度seo代理
  • 电子商务网站怎么做推广百度地址
  • 做网站广告收入站长之家seo一点询
  • 作为支付股东转让款的条件seo网站诊断
  • 免费做兼职的网站有吗北京seo外包公司要靠谱的
  • 模板商城建站广州网站设计
  • 网页设计与制作教程考试seo网站排名优化公司哪家
  • 秦皇岛建设部网站福建百度seo排名点击软件
  • 做网站用cms好吗游戏推广员拉人犯法吗
  • 网站怎么做维护百度平台营销软件
  • 网站公司做的网站经常打不开如何进行电子商务网站推广
  • 邯郸企业建站跨境电商seo是什么意思
  • 网站开发 业务流程图佛山seo优化
  • 网站做编辑赚钱西安网站建设推广
  • 做网站使用独享服务器的优点网站流量排名查询工具
  • 电子商务网站建设与管理aseo职业技能培训班
  • 做电影网站怎么接广告世界营销大师排名