vue2使用vite,vue vite

  vue2使用vite,vue vite

  挽救(保存的简写)指可伸缩矢量图形,用来定义用于网络的基于矢量的图形,下面这篇文章主要给大家介绍了关于如何在vue3 vite项目中使用挽救(保存的简写)的相关资料,需要的朋友可以参考下

  今天在vue3 vite项目练习中,在使用挽救(保存的简写)时,发现之前的写法不能用,之前的使用方法参考vue2中优雅的使用挽救(保存的简写)

  const req=require.context( ./icons/svg ,false,/\ .svg$/)

  const require all=要求内容=要求内容。keys().地图(要求内容)

  要求全部(请求)

  然后就各种资料查找,终于实现了,废话不多说,直接上代码:

  步骤1:文件目录

  步骤2:安装svg-sprite-loader

  新公共管理安装svg-sprite-loader -D

  #通过纱线

  纱线添加svg-sprite-loader -D

  步骤3:创建svgIcon.vue文件

  模板

  SVG:class= SVG class v-bind= $ attrs :style= { color:color }

  使用:xlink:href= icon name rel= external no follow /

  /svg

  /模板

  脚本设置

  从“vue”导入{ defineProps,computed }。

  const props=defineProps({

  名称:{

  类型:字符串,

  必填:真

  },

  颜色:{

  类型:字符串,

  默认值:""

  }

  })

  const icon name=computed(()=` # icon-$ { props。name } `);

  const svgClass=computed(()={

  console.log(props.name, props。姓名’);

  if (props.name) {

  return ` SVG-icon icon-$ { props。名称} ` 1

  }

  返回" svg图标"

  });

  /脚本

  样式lang=scss 。SVG-图标{

  宽度:1em

  身高:1em

  填充:当前颜色

  垂直对齐:居中;

  }

  /风格

  步骤4:创建核标准情报中心文件夹,存放挽救(保存的简写)文件

  步骤5:在主页。射流研究…里面全局注入挽救(saving的简写)图标组件

  从“vue”导入{ createApp }

  从导入应用程序 App.vue

  从导入svgIcon ./components/svgIcon.vue

  createApp(应用程序)。组件( svg-icon ,svgIcon).挂载( # app );

  步骤6:在插件文件夹创建svgBuilder.js(重点来了),ts版本参考:https://github。com/JetBrains/SVG-sprite-loader/issues/434

  从" fs "导入{读取文件同步,读取目录同步}

  设idPerfix=

  const svgTitle=/svg([^ ].*?)/

  常数净高宽度=/(widthheight)=([^】。*?)/g

  const has view box=/(viewbox=[^】。*?)/克

  const clearReturn=/(\r)(\n)/g

  函数查找文件(目录){

  const svgRes=[]

  const dirents=readdirSync(dir,{

  withFileTypes: true

  })

  对于(const董事董事){

  if (dirent.isDirectory()) {

  svgRes.push(.findSvgFile(dir dirent.name /))

  }否则{

  const SVG=读取文件同步(dir dirent。姓名)。toString()。replace(clearReturn,)。替换(svgTitle,($1,$2)={

  //console.log( i)

  //console.log(dirent.name)

  让宽度=0

  让高度=0

  let content=$2.replace(

  净空高度宽度,

  (s1,s2,s3)={

  if (s2===width) {

  宽度=s3

  } else if (s2===height) {

  高度=s3

  }

  返回""

  }

  )

  如果(!hasViewBox.test($2)) {

  content=` view box= 0 0 $ { width } $ { height } ` 0

  }

  return ` symbol id= $ { idPerfix }-$ { dirent。姓名。替换(。svg ,

  )}"$ { content } "

  })。替换(/svg ,/symbol )

  推送(svg)

  }

  }

  返回svgRes

  }

  export const svgBuilder=(path,perfix=icon)={

  if(路径=== )返回

  idPerfix=perfix

  const res=findSvgFile(路径)

  //console.log(分辨率长度)

  //const res=[]

  返回{

  名称:“svg-transform”,

  transformIndexHtml(html) {

  返回html.replace(

  正文,

  `

  身体

  SVG xmlns= http://www。w3。org/2000/SVG xmlns:xlink= http://www。w3。org/1999/xlink style= position:absolute;宽度:0;高度:0

  ${res.join()}

  /svg

  `

  )

  }

  }

  }

  步骤7:最后在vite.config.js修改配置

  从""导入{ svgBuilder } ./src/plugins/SVG builder ;

  导出默认定义配置({

  插件:[svg构建器(。/src/icons/svg/)]//这里已经导入了src/icons/svg/下的所有SVG,所以不需要单独导入。

  })

  总结

  关于如何在vue3 vite项目中使用svg的这篇文章到此结束。有关使用svg的vue3 vite的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: