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

网站正在建设中是什么意思商家货源网

网站正在建设中是什么意思,商家货源网,国外交易平台,app订制1、自定义组件,并使用 v-model 进行数据双向绑定。 简述: 自定义组件使用 v-model 进行传参时,遵循 Vue 3 的 v-model 机制。在 Vue 3 中,v-model 默认使用了 modelValue 作为 prop 名称,以及 update:modelValue 作为…

1、自定义组件,并使用 v-model 进行数据双向绑定。

简述: 自定义组件使用 v-model 进行传参时,遵循 Vue 3 的 v-model 机制。在 Vue 3 中,v-model 默认使用了 modelValue 作为 prop 名称,以及 update:modelValue 作为事件名称。

例子:
首先,我们创建一个自定义组件 MyInput.vue,该组件使用 <script setup> 语法,并允许通过 v-model 绑定值:

<!-- MyInput.vue -->  
<template>  <input :value="modelValue" @input="updateValue" />  
</template>  <script setup>  
import { defineProps, defineEmits, ref } from 'vue';  const props = defineProps({  modelValue: String  
});  const emit = defineEmits(['update:modelValue']);  const updateValue = (event) => {  emit('update:modelValue', event.target.value);  
};  
</script>

在这个例子中,使用了 defineProps 来定义 modelValue prop,它对应于 v-model 绑定的值。同时,我们使用 defineEmits 来声明 update:modelValue 事件,该事件将在输入框的值变化时被触发。

接下来,在父组件中使用这个自定义组件,并通过 v-model 绑定一个数据属性:

<!-- ParentComponent.vue -->  
<template>  <div>  <p>Value in Parent: {{ inputValue }}</p>  <MyInput v-model="inputValue" />  </div>  
</template>  <script setup>  
import { ref } from 'vue';  
import MyInput from './MyInput.vue';  const inputValue = ref('');  
</script>

在父组件中,导入了自定义的 MyInput 组件,并使用 v-modelinputValue 绑定到该组件的 modelValue prop 上。当 MyInput 组件中的输入框值变化时,它会触发 update:modelValue 事件,进而更新父组件中的 inputValue

注意,在 <script setup> 中,不需要显式地返回任何东西给模板,因为所有的响应式状态(通过 refreactive 创建)和函数都会自动暴露给模板。这使得代码更加简洁和直观。

2、异步加载动态组件
  ├─ src              │  ├─ components              │  │  ├─ ChartA.vue         │  │  ├─ ChartB.vue        │  │  └─ ChartC.vue       │  └─ test-async.vue └─ package.json                       
异步加载组件

方式一:


<template><AsyncOne />
</template><script setup>
import { defineAsyncComponent } from "vue";const AsyncOne = defineAsyncComponent(() =>import("@/components/ChartA.vue")
);
</script>

方法二:vue3+vite5 中


<template><AsyncTwo/>
</template><script setup>
import { defineAsyncComponent, ref } from "vue";const AsyncTwo = ref(null);
AsyncTwo.value = registerComponent("/ChartC");// 使用异步组件的方式加载组件
const registerComponent = (componentPath) => {const modules = import.meta.glob("./components/**/*.{vue,tsx}");for (const item in modules) {if (item.includes(componentPath)) {return defineAsyncComponent(modules[item]);}}
};
</script>
异步加载动态组件
<template><div v-for="(item, index) in componentsInfo" :key="index"><component :is="item.loadComp" /></div>
</template><script setup>
import { defineAsyncComponent, onMounted, ref } from "vue";const componentsInfo = ref([{id: "1-1",title: "图表A",component: "/ChartA",},{id: "1-2",title: "图表B",component: "/ChartB",},{id: "1-3",title: "图表C",component: "/ChartC",},
]);onMounted(() => {processLoad(componentsInfo.value);
});const processLoad = (info) => {for (let i = 0; i < info.length; i++) {let item = info[i];if (!item.component) {continue;}let resComp = registerComponent(item.component);item.loadComp = resComp;}
};// 注册一个异步组件
const registerComponent = (componentPath) => {//获取 src/components 文件夹下所有组件const modules = import.meta.glob("./components/**/*.{vue,tsx}"); for (const item in modules) {if (item.includes(componentPath)) {return defineAsyncComponent(modules[item]);}}
};
</script>

效果:
在这里插入图片描述

3、
http://www.yayakq.cn/news/685142/

相关文章:

  • 一千个长尾关键词用一千个网站做网站服务器信息
  • 企业网站建设排名资讯单页网站的制作
  • 为什么做的网站在浏览器搜不到中山精品网站建设新闻
  • 怎么做cpa网站台州网站建设咨询薇
  • 广州网站建设(信科网络)如何做原创漫画网站
  • 南昌定制网站开发公司公司系统软件
  • 网站推广实施方案陕西有限公司网站建设招标公告
  • 公司小网站怎么做广州越秀区是不是中风险地区
  • 有哪些建设网站公司重庆自助建站模板
  • 郑州网站建设哪家专业怎样解除拦截网站设置
  • 网站建设怎么让网站收录成都科技网站建设热
  • 龙口网站开发广东省网站建设网站
  • 网站流量统计外贸入门基本知识
  • 网站建设多久学会网站开发可演示的版本
  • 网站设计开发是啥做电商的进货网站
  • 虹桥街道网站建设wordpress边栏
  • 怎么找到网站站长织梦笑话娱乐网站源码2w数据+36条采集规则
  • 成都双语网站开发wordpress后台用户名
  • 品牌网站建设c股j东大蝌蚪网站运维托管
  • 美食网站开发与设计任务书信息流优化师没经验可以做吗
  • 手机网站的模板下载软件打开链接即可玩的游戏
  • 桂林网站开发公司电话宽屏网站设计
  • 宁波培训网站建设用vs做网站的登录
  • 企业网站建设 新闻宣传网站架构教程
  • 网站设计方案怎么写余干网站建设制作
  • 铁门关市建设局网站建设企业网站官网下载
  • win2008 iis配置网站东莞南城做网站
  • 一般做个网站多少做网站多少钱网站建设原则应考虑哪些
  • 安阳哪里有做网站的南和网站建设公司
  • seo网站推广全程实例wordpress图片ssl