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

模板建站和开发网站区别资源收费网站怎么做

模板建站和开发网站区别,资源收费网站怎么做,产品包装设计100例,网页无法访问是什么意思该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 一、使用场景 递归组件 的使用场景&#xff0c;如 无限级的菜单 &#xff0c;接下来就用菜单的例子来学习 二、具体使用 先把菜单的基础内容写出来再说 父…
  • 该文章是在学习 小满vue3 课程的随堂记录
  • 示例均采用 <script setup>,且包含 typescript 的基础用法

一、使用场景

递归组件 的使用场景,如 无限级的菜单 ,接下来就用菜单的例子来学习

二、具体使用

先把菜单的基础内容写出来再说

父组件

<Tree :data="mock" />
// 引入子组件
import Tree from "../components/17_组件/Tree.vue";// 菜单的数据格式
interface ITree {name: string;checked: boolean;children?: ITree[];
}
// 数据 mock
const mock: ITree[] = [{name: "1",checked: false,children: [{name: "1-1",checked: true,},],},{name: "2",checked: false,},{name: "3",checked: false,children: [{name: "3-1",checked: false,children: [{name: "3-1-1",checked: true,},],},],},
];

子组件

<!-- 第一层数据 -->
<div v-for="item in data" style="margin-left: 16px"><input type="checkbox" v-model="item.checked" />{{ item.name }}
</div>
<script setup lang="ts">
// 这里为了方便直接拷贝过来了,实际项目中要抽离出来复用
interface ITree {name: string;checked: boolean;children?: ITree[];
}
// props 定义
defineProps<{data?: ITree[];
}>();
</script>

如图,上述代码已经完成了 第一层 菜单数据的渲染:

在这里插入图片描述

深层 的菜单数据,就要用到 递归组件 了,递归组件有以下 三种 使用方式

1、直接使用 自己的文件名 作为 组件名称,不需要引入

当前的文件名称是 Tree.vue,所以直接使用 Tree 即可

子组件

<!-- 第一层数据 -->
<div v-for="item in data" style="margin-left: 16px"><input type="checkbox" v-model="item.checked" />{{ item.name }}<!-- 需要注意:需要按照格式传入子组件要用的数据,并且加上递归的判断条件 --><Tree v-if="item?.children?.length" :data="item.children"></Tree>
</div>

使用结果如下:

在这里插入图片描述

2、子组件中再定义一个 script,并暴露出 name

子组件

<script lang="ts">
// 再起一个 script(lang必须保持一致),用来定义该组件的 name
export default {name: "TreeVue",
};
</script>

使用时,就可以用自定义的组件名

<!-- 第一层数据 -->
<div v-for="item in data" style="margin-left: 16px"><input type="checkbox" v-model="item.checked" />{{ item.name }}<!-- 深层数据 --><TreeVue v-if="item?.children?.length" :data="item.children"></TreeVue>
</div>

渲染结果一致:

在这里插入图片描述

3、使用 defineOptions 自定义组件名

  • Vue3.3 增加了 defineOptions 方法,用来定义 optionsAPI 中的选项,比如组件名称 name(老一点的 vue 版本要装插件才能使用 defineOptions)
  • 与上面第二种思路一致,就是起个名再用

子组件

<script setup lang="ts">
interface ITree {name: string;checked: boolean;children?: ITree[];
}
defineProps<{data?: ITree[];
}>();// 直接在原有的 script 中进行自定义
defineOptions({name: "Self",
});
</script>
<!-- 第一层数据 -->
<div v-for="item in data" style="margin-left: 16px"><input type="checkbox" v-model="item.checked" />{{ item.name }}<!-- 深层数据 --><Self v-if="item?.children?.length" :data="item.children"></Self>
</div>

渲染结果仍然一致,不再赘述

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

相关文章:

  • 海淘网站主要关键词北京网站设计公司哪儿济南兴田德润简介
  • 马鞍山什么房产网站做的好wordpress能做论坛吗
  • wamp配置多个网站免费凡客建站官网
  • 好多公司为啥只做网站 不考虑推广php网站开发心得3500字
  • 望京SOHO网站建设wordpress点击折叠展开内容
  • 哪个网站衬衣做的好国家机构网站建设
  • 建设一个网站需要哪些费用吗恒基建设集团网站
  • 合作做网站印度人通过什么网站做国际贸易
  • 做网站做系统一样么中文wordpress博客模板
  • 网站制作的部分怎么建立图片文件
  • 深圳网站建设费用多少小规模公司做网站成本是什么
  • 试述网站建设的步骤过程中国会议营销网站
  • 深圳快速网站制作哪家快wordpress后台显示英文
  • 制作网站哪里好网站开发公司vue框架
  • 重庆永川网站建设四川个人网站备案
  • 小程序怎么做电影网站wordpress数据库表前缀
  • 建设银行发卡银行网站做网站开发的营业执照
  • 购物网站功能报价跑腿公司怎么做网站
  • jsp网站开发环境配置国内哪个网站是做电子元器件的
  • 企业专业建站电子商务网站建设网
  • 石家庄市城乡和建设局网站百度分享wordpress插件下载
  • 怎么做刷业务网站wordpress主页访客记录
  • 百度网站官网用ftp上传wordpress
  • 怎么用flash做视频网站网站表单及商品列表详情模板
  • 品牌微信网站定制网站开发能进入无形资产吗
  • 网站底部图片代码郑州妇科医院哪个医院最好
  • 两个网站用一个空间什么是网页设计与网站建设
  • 怎么在百度上建网站成品在线视频免费入口
  • 辽宁建设考试培训网站顺义企业建站
  • 查询域名官网的是那个网站吗天津网站优化哪家最专业