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

做商城微信网站电子商务软文写作

做商城微信网站,电子商务软文写作,网页视频怎么下载到电脑,深圳公共资源交易中心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.ds6.com.cn/news/64364.html

相关文章:

  • 上海闵行区天气预报搜索引擎优化方案
  • 做网站都用到哪些软件阿里云建网站
  • 长沙建立网站电商运营平台
  • 用web做简单的电商网站简单的seo
  • 利用php做直播网站西安网站建设排名
  • 做同城信息类网站如何赚钱关键词优化简易
  • 恭城网站建设网络营销策划方案案例
  • 李沧网站建设百度指数搜索
  • app模板下载网站网络推广计划书范文
  • 电子商务网站建设影响因素正规微商免费推广软件
  • 网站前端页面设计360建站系统
  • 手机做公司网站汕头网站建设平台
  • 动漫制作与设计专业真实的优化排名
  • 赣州客家新闻网苏州百度关键词优化
  • 网站布局分类成品网站源码
  • 网站是不是要用代码做佛山网站建设排名
  • 新疆示范工程建设服务平台网站免费推广引流平台有哪些
  • 做网站都需要什么软件友情链接是外链吗
  • 网站怎么经营长岭网站优化公司
  • 电子商务网站建设与实例大数据智能营销
  • 甘肃省人民政府官网首页论述搜索引擎优化的具体措施
  • 做销售网站要多少钱武汉网站推广公司排名
  • 注册网站的公司名字凤凰军事新闻最新消息
  • 建设银行官方网站 诚聘英才企业自建网站
  • 网站轮播效果怎么做的sem 推广软件
  • 江西医院网站建设上海高端网站建设
  • 网站后端用什么软件做seo搜索优化专员
  • 石岩做网站的公司如何做好口碑营销
  • 上海 网站建设业务营销方法网络营销就业前景和薪水
  • 个人网站注销原因b站引流推广