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

绍兴建站模板厂家做h的小说网站有哪些

绍兴建站模板厂家,做h的小说网站有哪些,网站建设1001网站建设,做地方的门户网站在Vue 3的<script setup>语法中&#xff0c;直接使用name属性而不报错的原因是项目配置了第三方插件&#xff08;如vite-plugin-vue-setup-extend或unplugin-vue-define-options&#xff09;。这些插件允许在<script setup>标签上直接定义name属性&#xff0c;并在…

在Vue 3的<script setup>语法中,直接使用name属性而不报错的原因是项目配置了第三方插件(如vite-plugin-vue-setup-extendunplugin-vue-define-options。这些插件允许在<script setup>标签上直接定义name属性,并在编译阶段将其注入为组件的选项。

详细解释:

  1. 传统写法

    • 单独的<script>块定义:

      vue

      <script lang="ts">
      export default { name: "ProgressCtrl" };
      </script>
  2. 第三方插件的作用

    • 插件如vite-plugin-vue-setup-extend扩展了Vue SFC的编译逻辑,允许在<script setup>标签上添加name属性:

      vue

      <script setup lang="ts" name="Home">
      // ...
      </script>
    • 编译时,插件会将name提取并自动生成defineOptions调用,等效于显式使用defineOptions

  3. 为何不报错

    • 如果没有插件,Vue编译器会忽略未知属性(如name),但不会自动处理为组件选项,可能导致name未生效。

    • 配置插件后,插件在编译阶段识别name属性并注入组件选项,因此不会报错且name生效。

验证与解决方案:

  • 检查项目配置:查看vite.config.ts或类似文件是否包含类似插件:

    typescript

    import vueSetupExtend from 'vite-plugin-vue-setup-extend';export default {plugins: [vue(), vueSetupExtend()]
    };
  • 替代方案:若不想用插件,改用defineOptions或单独<script>块定义name

总结:

<script setup>中直接写name属性不报错,是因为插件在编译阶段处理了这一特性,将其转换为合法的组件选项。这是对Vue SFC编译流程的扩展,并非Vue原生支持的功能。

1. <script setup> 语法

这是 Vue 3 的 Composition API 语法糖,特点:

  • 更简洁的代码组织方式。

  • 顶层绑定(变量、函数等)自动暴露给模板。

  • 默认无法直接配置组件选项(如 nameinheritAttrs 等),需借助工具。


2. defineOptions 函数

  • 作用:在 <script setup> 中定义组件选项(如 nameinheritAttrs 等)。

  • 来源:它不是 Vue 核心 API,通常由插件(如 unplugin-vue-define-options 或 vite-plugin-vue-setup-extend)提供。

  • 编译时处理:构建工具会在编译阶段将选项注入组件。


3. 代码含义

javascript

复制

defineOptions({name: 'Home'
});
  • 设置当前组件的 name 选项为 'Home'

  • name 的作用:

    • 递归组件:组件内部调用自身时需命名。

    • 开发者工具:在 Vue Devtools 中显示组件名称。

    • <keep-alive> 缓存:通过 include/exclude 匹配组件名。


4. 对比传统写法

没有 <script setup> 时,需这样写:

vue

复制

<script>
export default {name: 'Home',setup() {// 逻辑}
}
</script>

而 <script setup> + defineOptions 更简洁,适合组合式 API。


5. 注意事项

  • 插件依赖:确保项目配置了支持 defineOptions 的插件(如 Vite 项目中安装 unplugin-vue-define-options)。

  • 版本兼容:Vue 3.3+ 已实验性支持 defineOptions,未来可能成为标准。


总结

这段代码通过 defineOptions 为 Vue 组件设置了名称 'Home',解决了 <script setup> 无法直接配置选项的限制,依赖构建插件实现,使代码更简洁且符合组合式 API 风格。

操作示例:

需要指定组件名显示为 ProgressCtrl(目前是显示 progress-ctrl ,程序也不报错)

<script setup lang="ts" name="ProgressCtrl">

.vue文件的文件名与组件名不一样

1、按传统写法,增加一个

<script lang="ts">

export default { name: "ProgressCtrl" };

</script>

用来定义组件名称

原来的 <script setup lang="ts" name="progress-ctrl"> 去掉 name 属性

<script lang="ts">
export default { name: "ProgressCtrl" };
</script>
<script setup lang="ts">
import ProgressCtrlTree from "./progress-ctrl/comps/progress-ctrl-tree.vue";
import ProgressCtrlSearch from "./progress-ctrl/comps/progress-ctrl-search.vue";
import ProgressCtrlMain from "./progress-ctrl/comps/progress-ctrl-main.vue";
import ProgressCtrlTabs from "./progress-ctrl/comps/progress-ctrl-tabs.vue";
import ProgressCtrlPagination from "./progress-ctrl/comps/progress-ctrl-pagination.vue";
import useProgressCtrlStore from "./progress-ctrl/stores";
import { onMounted } from "vue";const progressCtrlStore = useProgressCtrlStore();onMounted(() => {// 初始化StoreprogressCtrlStore.$reset();
});
</script>

运行效果: 

2、安装插件

2.1、安装

npm i vite-plugin-vue-setup-extend -D

2.2、设置,打开vite.config.ts

import VueSetupExtend from "vite-plugin-vue-setup-extend";
plugins: [vue(), VueSetupExtend()],

vite.config.ts 完整代码 

import { fileURLToPath, URL } from "node:url";import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import VueSetupExtend from "vite-plugin-vue-setup-extend";// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(), VueSetupExtend()],resolve: {alias: {"@": fileURLToPath(new URL("./src", import.meta.url))}},server: {// 指定端口,vite默认 5173port: 5173,// 指定服务器监听的 IP 地址,如果将此设置为 0.0.0.0 或者 true 将监听所有地址host: "0.0.0.0",proxy: {// 【代理1】获取路径中包含有 /api 的请求"/api": {// 后台服务所在的源target: "http://localhost:8080",// 修改源changeOrigin: true,// 将 api 替换为 ''rewrite: (path) => path.replace(/^\/api/, "")},// 【代理2】获取路径中包含有 /apu 的请求,【上传数据】用于前端网面对外请求发送数据"/apu": {// 后台服务所在的源target: "http://localhost:8081",// 修改源changeOrigin: true,// 将 apu 替换为 ''rewrite: (path) => path.replace(/^\/apu/, "")}}}
});

 2.3、在<script setup>设置组件名称

<script setup lang="ts" name="ProgressCtrl">

运行效果: 


文章转载自:

http://k0v3nv4O.yLyxm.cn
http://min8breW.yLyxm.cn
http://bbTzfGQZ.yLyxm.cn
http://vZ0X3Pj2.yLyxm.cn
http://XsHoqD3g.yLyxm.cn
http://VfWGQOdM.yLyxm.cn
http://jqEYyMVs.yLyxm.cn
http://JfEsalEJ.yLyxm.cn
http://Dik9814I.yLyxm.cn
http://OK7WucY7.yLyxm.cn
http://pmmTyMUR.yLyxm.cn
http://mSBZyRrk.yLyxm.cn
http://g2QgLAoB.yLyxm.cn
http://5rPHEs4Y.yLyxm.cn
http://NfPI2cQm.yLyxm.cn
http://q5HBwk9x.yLyxm.cn
http://HOlXXykc.yLyxm.cn
http://Tlf2Khvn.yLyxm.cn
http://xCBRRUK1.yLyxm.cn
http://9kzP7UXj.yLyxm.cn
http://2RRFvlv9.yLyxm.cn
http://x9AQSfOd.yLyxm.cn
http://CQPynjaX.yLyxm.cn
http://bQHojVBX.yLyxm.cn
http://aycqWr7O.yLyxm.cn
http://071MHjJr.yLyxm.cn
http://To26a5et.yLyxm.cn
http://God0kTD1.yLyxm.cn
http://EEIBCuV4.yLyxm.cn
http://KoscntwA.yLyxm.cn
http://www.dtcms.com/wzjs/634312.html

相关文章:

  • 新网站如何做流量做自己视频教程的网站
  • 从化网站建设推广任县网站建设网络公司
  • 怎样更新网站宁波甬城配网建设有限公司
  • 赣州专业企业网站建设wordpress 管理员密码忘记
  • 怎么建淘宝客网站简洁大气企业网站源码 后台
  • 兴县做网站的公司西安网站开发工资
  • 马鞍山网站设计价格上海境外输入
  • 专业 网站建设怎么写代码做网站
  • 深圳品牌网站建设公司常熟市住房建设局网站
  • 有效的小企业网站建设怎么快速推广app
  • 半岛建设公司网站网站设计与推广
  • 网站开发实验报告总结老鬼seo
  • 网站外包优化全国小学网站建设
  • 学校 网站建设招聘电脑云主机
  • 十堰网站建设怎么样做网站运营有趣吗
  • 网站建设就业前景2017零度业务网站
  • 在网上怎么做网站又快又好自助建站系统
  • 多少钱表情包谷歌seo服务
  • 秦皇岛网站制作费用阿里巴巴网站工作流程
  • 引流推广网站平台栾城区城乡建设局网站
  • PHP网站名字90设计包图网
  • 网站建设哪家不错自学网站建设工资
  • 网站建设淘宝模板上海优质建筑设计网公司
  • 改版网站会影响百度安徽六安市地图
  • 网站商城建设方案10个网站 云主机需求
  • 校园门户网站建设项目技术支持手工艺品网站建设策划书
  • 弧度网站建设建设机械官方网站
  • 增加网站收录哈尔滨建设局
  • 做风险代理案源的网站宿迁北京网站建设
  • 建设一个网站需要哪些费用ui培训班哪里有