Apo*_*his 5 ionic-framework vue.js ionic4
我目前正在使用 Vue Cli 生成一个包含 ionic 和 ionicon 库的项目。
包.json
"@ionic/core": "^4.11.7",
"@ionic/pwa-elements": "^1.4.1",
"@ionic/vue": "0.0.9",
"ionicons": "^4.6.3",
Run Code Online (Sandbox Code Playgroud)
我正在尝试向我的项目添加自定义图标。我正在关注 Ionic 文档https://ionicons.com/usage,其中指出为了添加自定义 SVG 图标,必须采取以下步骤:
要使用自定义 SVG,请在 src 属性中提供其 URL 以请求外部 SVG 文件。src 属性的工作原理与 URL 必须可从发出图像请求的网页访问相同。此外,外部文件只能是有效的 SVG,并且不允许在 SVG 元素中包含脚本或事件。
我已按照示例进行操作,但未加载图标。我发现的相同案例场景的另一个示例是以下https://golb.hplar.ch/2018/01/Custom-SVG-icons-in-Ionic.html。按照这个示例,我尝试直接在 src 中添加图标的 SVG 代码。这似乎有效,但出于组织目的,如果我可以将文件路径传递给组件,我会发现它更方便。
这就是我为了让它在 Vue 中工作而所做的
npm i @ionic/vue@0.0.9main.js如果您只想使用自定义图标:
import Vue from 'vue'
import App from './App.vue'
import Ionic from '@ionic/vue'
import '@ionic/core/css/ionic.bundle.css';
Vue.use(Ionic);
Vue.config.productionTip = false
new Vue({
render: function (h) { return h(App) },
}).$mount('#app')
Run Code Online (Sandbox Code Playgroud)
如果您还想使用离子图标(在内部addIcons我基本上这样做:
addIcons({"ios-star": star.ios, "md-star": star.md})。这当然是可选的,但这样我只需要在我的数组中添加一个新条目,如果我想在我的应用程序中添加一个新图标,您可以阅读更多关于这里。):
import Vue from 'vue'
import App from './App.vue'
import Ionic from '@ionic/vue'
import '@ionic/core/css/ionic.bundle.css'
import { addIcons } from 'ionicons'
import camelCase from 'lodash/fp/camelCase'
// ionicons.com App icons
const appIcons = ['star', 'images']
// ionicons.com Logos
const logos = ['logo-facebook']
Vue.use(Ionic);
Vue.config.productionTip = false
addIcons({
// App icons object
...appIcons.reduce((acc, name) => {
return {
...acc,
[`ios-${name}`]: require('ionicons/icons')[camelCase(name)].ios,
[`md-${name}`]: require('ionicons/icons')[camelCase(name)].md
}
}, {}),
// Logos object
...logos.reduce((acc, name) => {
return {
...acc,
[name]: require('ionicons/icons')[camelCase(name)]
}
}, {}),
})
new Vue({
render: function (h) { return h(App) },
}).$mount('#app')
Run Code Online (Sandbox Code Playgroud)
public文件夹中<ion-icon src="/custom.svg" />编辑:如果您想使用src/assets而不是public文件夹
,我还尝试将我的自定义图标移动到src/assets文件夹,因为vue-cli public folder。我发现由于 vue-cli 的某种原因,webpack 在将自定义图标放入src/assets文件夹并将图标用作<ion-icon src="./assets/custom.svg" />. 因此,如果您想将图标保留在 中src/assets,则此解决方法对我有用(基于此):
<ion-icon :src="require(`@/assets/custom.svg`)" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2940 次 |
| 最近记录: |