{"id":35971,"date":"2025-12-06T08:41:00","date_gmt":"2025-12-06T05:41:00","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35971"},"modified":"2025-12-06T08:41:00","modified_gmt":"2025-12-06T05:41:00","slug":"vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/","title":{"rendered":"Vue.js Uygulamalar\u0131nda Bootstrap 4&#8217;\u00fc BootstrapVue ile Kullanma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Vue.js Uygulamalar\u0131nda Bootstrap 4&#8217;\u00fc BootstrapVue ile Kullanma Rehberi<\/h2>\n<p>Modern web geli\u015ftirme d\u00fcnyas\u0131nda, kullan\u0131c\u0131 aray\u00fczlerinin h\u0131zl\u0131 ve etkili bir \u015fekilde olu\u015fturulmas\u0131 b\u00fcy\u00fck \u00f6nem ta\u015f\u0131maktad\u0131r. Bu s\u00fcre\u00e7te pop\u00fclerli\u011fini kan\u0131tlam\u0131\u015f iki teknoloji, \u00f6n u\u00e7 JavaScript \u00e7er\u00e7evesi Vue.js ve responsive tasar\u0131m k\u00fct\u00fcphanesi Bootstrap, geli\u015ftiricilerin vazge\u00e7ilmez ara\u00e7lar\u0131 haline gelmi\u015ftir. Ancak bu iki g\u00fc\u00e7l\u00fc arac\u0131 bir araya getirmek, baz\u0131 entegrasyon zorluklar\u0131n\u0131 beraberinde getirebilir. \u0130\u015fte tam bu noktada BootstrapVue devreye girerek, Vue.js geli\u015ftiricilerine Bootstrap 4 bile\u015fenlerini yerel Vue bile\u015fenleri olarak sunarak bu s\u00fcreci inan\u0131lmaz derecede kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Bu kapsaml\u0131 rehberde, Vue.js projelerinizde Bootstrap 4&#8217;\u00fc BootstrapVue arac\u0131l\u0131\u011f\u0131yla nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Neden BootstrapVue kullanman\u0131z gerekti\u011finden ba\u015flayarak, geli\u015ftirme ortam\u0131n\u0131n haz\u0131rlanmas\u0131na, kurulum ve entegrasyon s\u00fcre\u00e7lerine, temel bile\u015fenlerin kullan\u0131m\u0131na, tema \u00f6zelle\u015ftirmesine ve hatta yayg\u0131n sorunlara \u00e7\u00f6z\u00fcmler sunmaya kadar her detay\u0131 ele alaca\u011f\u0131z. Amac\u0131m\u0131z, bu rehberin sonunda kendi Vue.js uygulaman\u0131zda BootstrapVue&#8217;yu confidently bir \u015fekilde kullanabilmeniz i\u00e7in size sa\u011flam bir temel olu\u015fturmakt\u0131r.<\/p>\n<h3>Neden BootstrapVue Kullanmal\u0131s\u0131n\u0131z?<\/h3>\n<p>Bootstrap, web sayfalar\u0131n\u0131 h\u0131zl\u0131ca stilize etmek ve duyarl\u0131 tasar\u0131mlar olu\u015fturmak i\u00e7in d\u00fcnya genelinde milyonlarca geli\u015ftirici taraf\u0131ndan kullan\u0131lan pop\u00fcler bir CSS \u00e7er\u00e7evesidir. Vue.js ise, interaktif kullan\u0131c\u0131 aray\u00fczleri olu\u015fturmak i\u00e7in kullan\u0131lan ilerici bir JavaScript \u00e7er\u00e7evesidir. Her ikisi de kendi alanlar\u0131nda g\u00fc\u00e7l\u00fc olsa da, geleneksel Bootstrap&#8217;\u0131 do\u011frudan bir Vue.js projesine entegre etmek baz\u0131 zorluklar\u0131 beraberinde getirebilir:<\/p>\n<p>*   <strong>jQuery Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131:<\/strong> Bootstrap&#8217;\u0131n JavaScript bile\u015fenleri (modal, dropdown, carousel vb.) geleneksel olarak jQuery&#8217;ye ba\u011f\u0131ml\u0131d\u0131r. Vue.js projeleri ise genellikle jQuery kullanmaz ve bir Vue projesine s\u0131rf Bootstrap i\u00e7in jQuery eklemek, gereksiz y\u00fck ve potansiyel \u00e7ak\u0131\u015fmalar anlam\u0131na gelebilir.<br \/>\n*   <strong>Vue Reaktivitesi ile Uyumsuzluk:<\/strong> Bootstrap&#8217;\u0131n JavaScript bile\u015fenleri DOM manip\u00fclasyonu \u00fczerine kuruludur. Vue.js ise sanal DOM kullanarak ve reaktif veri ba\u011flama ile \u00e7al\u0131\u015f\u0131r. Bu iki yakla\u015f\u0131m aras\u0131nda do\u011frudan bir uyum sa\u011flamak zor olabilir ve beklenmedik davran\u0131\u015flara yol a\u00e7abilir.<br \/>\n*   <strong>Bile\u015fen Tabanl\u0131 Mimari:<\/strong> Vue.js, bile\u015fen tabanl\u0131 bir mimariye sahiptir. Geleneksel Bootstrap&#8217;\u0131 kullan\u0131rken, her bir Bootstrap bile\u015fenini (\u00f6rne\u011fin bir modal\u0131) Vue bile\u015fenleri i\u00e7inde manuel olarak sarmalaman\u0131z veya y\u00f6netmeniz gerekebilir, bu da tekrarlayan ve hataya a\u00e7\u0131k bir s\u00fcre\u00e7tir.<\/p>\n<p>\u0130\u015fte bu noktada BootstrapVue, yukar\u0131da belirtilen t\u00fcm sorunlara zarif ve etkili \u00e7\u00f6z\u00fcmler sunar:<\/p>\n<p>1.  <strong>Yerel Vue Bile\u015fenleri:<\/strong> BootstrapVue, Bootstrap 4&#8217;\u00fcn t\u00fcm bile\u015fenlerini (d\u00fc\u011fmeler, kartlar, form elemanlar\u0131, navigasyon \u00e7ubuklar\u0131, modallar vb.) yerel Vue bile\u015fenleri olarak yeniden yazar. Bu, Bootstrap bile\u015fenlerini do\u011frudan Vue \u015fablonlar\u0131n\u0131zda <code><b-button><\/code>, <code><b-card><\/code>, <code><b-form-input><\/code> gibi etiketlerle kullanabilece\u011finiz anlam\u0131na gelir.<br \/>\n2.  <strong>jQuery Ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131:<\/strong> BootstrapVue, Bootstrap&#8217;\u0131n JavaScript bile\u015fenlerini saf Vue.js koduyla yeniden uygulad\u0131\u011f\u0131 i\u00e7in hi\u00e7bir jQuery ba\u011f\u0131ml\u0131l\u0131\u011f\u0131na sahip de\u011fildir. Bu, projenizin daha hafif, daha h\u0131zl\u0131 ve daha az karma\u015f\u0131k olmas\u0131n\u0131 sa\u011flar.<br \/>\n3.  <strong>Vue Reaktivitesi ile Tam Entegrasyon:<\/strong> BootstrapVue bile\u015fenleri, Vue&#8217;nun reaktif veri ba\u011flama ve prop sistemini tamamen destekler. Bu sayede, bile\u015fenlerin durumunu (g\u00f6r\u00fcn\u00fcrl\u00fck, devre d\u0131\u015f\u0131 b\u0131rakma, de\u011ferler vb.) Vue verilerinizle kolayca y\u00f6netebilir ve bile\u015fenlerinizin uygulaman\u0131z\u0131n durumuyla senkronize olmas\u0131n\u0131 sa\u011flayabilirsiniz.<br \/>\n4.  <strong>Eri\u015filebilirlik (Accessibility):<\/strong> BootstrapVue, WAI-ARIA (Web Accessibility Initiative &#8211; Accessible Rich Internet Applications) standartlar\u0131na uygun olarak tasarlanm\u0131\u015ft\u0131r. Bu, uygulamalar\u0131n\u0131z\u0131n ekran okuyucular ve di\u011fer yard\u0131mc\u0131 teknolojilerle daha uyumlu olmas\u0131n\u0131 sa\u011flayarak daha geni\u015f bir kullan\u0131c\u0131 kitlesine ula\u015fman\u0131za yard\u0131mc\u0131 olur.<br \/>\n5.  <strong>Mod\u00fclerlik ve A\u011fa\u00e7 Budama (Tree-Shaking):<\/strong> BootstrapVue, mod\u00fcler bir yap\u0131ya sahiptir. Bu sayede, sadece kulland\u0131\u011f\u0131n\u0131z bile\u015fenleri ve ilgili CSS&#8217;i projenize dahil edebilirsiniz. Bu &#8220;a\u011fa\u00e7 budama&#8221; (tree-shaking) \u00f6zelli\u011fi, nihai uygulama boyutunuzu \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r ve performans\u0131n\u0131z\u0131 art\u0131r\u0131r.<br \/>\n6.  <strong>Kapsaml\u0131 Dok\u00fcmantasyon:<\/strong> BootstrapVue, her bile\u015fen i\u00e7in detayl\u0131 \u00f6rnekler, prop&#8217;lar, slot&#8217;lar ve olaylar i\u00e7eren kapsaml\u0131 bir dok\u00fcmantasyona sahiptir. Bu, \u00f6\u011frenme s\u00fcrecini h\u0131zland\u0131r\u0131r ve geli\u015ftirme s\u0131ras\u0131nda kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z sorulara h\u0131zl\u0131ca yan\u0131t bulman\u0131z\u0131 sa\u011flar.<\/p>\n<p>\u00d6zetle, BootstrapVue, Vue.js ve Bootstrap 4&#8217;\u00fcn en iyi \u00f6zelliklerini bir araya getirerek, modern, duyarl\u0131, eri\u015filebilir ve performansl\u0131 web uygulamalar\u0131 geli\u015ftirmenizi sa\u011flayan g\u00fc\u00e7l\u00fc ve verimli bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h3>Geli\u015ftirme Ortam\u0131n\u0131 Haz\u0131rlama<\/h3>\n<p>BootstrapVue&#8217;yu kullanmaya ba\u015flamadan \u00f6nce, temel bir Vue.js geli\u015ftirme ortam\u0131na sahip olman\u0131z gerekir. Vue CLI (Command Line Interface), Vue.js projeleri olu\u015fturmak ve y\u00f6netmek i\u00e7in \u00f6nerilen ara\u00e7t\u0131r.<\/p>\n<h4>Vue CLI Kurulumu<\/h4>\n<p>E\u011fer sisteminizde Vue CLI y\u00fckl\u00fc de\u011filse, a\u015fa\u011f\u0131daki komutla global olarak kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">npm install -g @vue\/cli\n<h2>veya<\/h2>\nyarn global add @vue\/cli<\/code><\/pre>\n<p>Bu komut, Vue CLI&#8217;nin en son s\u00fcr\u00fcm\u00fcn\u00fc sisteminize kuracakt\u0131r. Kurulumun ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in <code>vue --version<\/code> komutunu \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<h4>Yeni Bir Vue Projesi Olu\u015fturma<\/h4>\n<p>Vue CLI ba\u015far\u0131yla y\u00fcklendikten sonra, yeni bir Vue.js projesi olu\u015fturabiliriz. Projenizi olu\u015fturmak istedi\u011finiz dizine gidin ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">vue create my-bootstrap-vue-app<\/code><\/pre>\n<p><code>my-bootstrap-vue-app<\/code> yerine projenizin ad\u0131n\u0131 yazabilirsiniz. Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Vue CLI size projeniz i\u00e7in baz\u0131 yap\u0131land\u0131rma se\u00e7enekleri sunacakt\u0131r:<\/p>\n<p>1.  <strong>Preset Se\u00e7imi:<\/strong> Genellikle &#8220;Default (Vue 3)&#8221; veya &#8220;Manually select features&#8221; se\u00e7eneklerinden birini se\u00e7ebilirsiniz. Bu rehber Bootstrap 4 ile \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, Vue 2 veya Vue 3 fark etmeksizin BootstrapVue&#8217;yu kullanabilirsiniz. E\u011fer manuel se\u00e7im yaparsan\u0131z, Babel ve Linter\/Formatter gibi temel \u00f6zellikleri se\u00e7ti\u011finizden emin olun.<br \/>\n2.  <strong>Vue S\u00fcr\u00fcm\u00fc:<\/strong> Vue 2 veya Vue 3 se\u00e7ene\u011fi sunulabilir. BootstrapVue \u015fu anda Vue 2&#8217;yi tam olarak desteklemektedir. Vue 3 deste\u011fi beta a\u015famas\u0131ndad\u0131r (BootstrapVueNext). Bu rehberde Vue 2 ile uyumlu BootstrapVue&#8217;yu ele alaca\u011f\u0131z. Bu y\u00fczden Vue 2 se\u00e7ene\u011fini tercih edebilirsiniz.<\/p>\n<p>Se\u00e7imlerinizi yapt\u0131ktan sonra, Vue CLI gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fckleyecek ve projenizin iskeletini olu\u015fturacakt\u0131r. Bu i\u015flem biraz zaman alabilir. Proje olu\u015fturulduktan sonra, projenizin dizinine girin:<\/p>\n<pre><code class=\"language-bash\">cd my-bootstrap-vue-app<\/code><\/pre>\n<p>Art\u0131k projeniz haz\u0131r ve BootstrapVue&#8217;yu entegre etmeye ba\u015flayabiliriz.<\/p>\n<h3>BootstrapVue Kurulumu ve Entegrasyonu<\/h3>\n<p>Geli\u015ftirme ortam\u0131m\u0131z haz\u0131r oldu\u011funa g\u00f6re, BootstrapVue&#8217;yu projemize dahil etme zaman\u0131 geldi. Bu s\u00fcre\u00e7, gerekli paketlerin y\u00fcklenmesini ve <code>main.js<\/code> dosyas\u0131n\u0131n yap\u0131land\u0131r\u0131lmas\u0131n\u0131 i\u00e7erir.<\/p>\n<h4>Gerekli Paketleri Y\u00fckleme<\/h4>\n<p>BootstrapVue&#8217;yu projenize eklemek i\u00e7in <code>npm<\/code> veya <code>yarn<\/code> kullanarak a\u015fa\u011f\u0131daki paketleri y\u00fcklemeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">npm install bootstrap-vue bootstrap\n<h2>veya<\/h2>\nyarn add bootstrap-vue bootstrap<\/code><\/pre>\n<p>Bu komutlar iki ana paketi y\u00fckleyecektir:<\/p>\n<p>*   <code>bootstrap-vue<\/code>: Bootstrap 4 bile\u015fenlerinin Vue.js versiyonlar\u0131n\u0131 i\u00e7erir.<br \/>\n*   <code>bootstrap<\/code>: Bootstrap 4&#8217;\u00fcn orijinal CSS ve JavaScript dosyalar\u0131n\u0131 i\u00e7erir. BootstrapVue, bu CSS dosyalar\u0131na ihtiya\u00e7 duyar.<\/p>\n<p>Ek olarak, Bootstrap 5 ile birlikte gelen ve BootstrapVue&#8217;nun da destekledi\u011fi SVG tabanl\u0131 ikonlar\u0131 kullanmak isterseniz, <code>bootstrap-icons<\/code> paketini de y\u00fckleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">npm install bootstrap-icons\n<h2>veya<\/h2>\nyarn add bootstrap-icons<\/code><\/pre>\n<p>Bu rehberin geri kalan\u0131nda, temel BootstrapVue ve Bootstrap kurulumunu varsayaca\u011f\u0131z.<\/p>\n<h4><code>main.js<\/code> Dosyas\u0131n\u0131 Yap\u0131land\u0131rma<\/h4>\n<p>Paketleri y\u00fckledikten sonra, BootstrapVue&#8217;yu Vue.js uygulaman\u0131z\u0131n ana giri\u015f noktas\u0131 olan <code>src\/main.js<\/code> (veya <code>src\/main.ts<\/code> TypeScript kullan\u0131yorsan\u0131z) dosyas\u0131na entegre etmeniz gerekir. Bu dosya, Vue uygulaman\u0131z\u0131 ba\u015flat\u0131r ve global eklentileri kaydeder.<\/p>\n<p><code>src\/main.js<\/code> dosyan\u0131z\u0131 a\u015fa\u011f\u0131daki gibi g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-javascript\">import Vue from 'vue'\nimport App from '.\/App.vue'\n\n\/\/ BootstrapVue CSS dosyalar\u0131n\u0131 i\u00e7e aktar\u0131n\nimport 'bootstrap\/dist\/css\/bootstrap.css'\nimport 'bootstrap-vue\/dist\/bootstrap-vue.css'\n\n\/\/ BootstrapVue eklentisini i\u00e7e aktar\u0131n\nimport BootstrapVue from 'bootstrap-vue'\n\nVue.config.productionTip = false\n\n\/\/ Vue'ya BootstrapVue'yu kullanmas\u0131n\u0131 s\u00f6yleyin\nVue.use(BootstrapVue)\n\nnew Vue({\n  render: h => h(App),\n}).$mount('#app')<\/code><\/pre>\n<p><strong>A\u00e7\u0131klamalar:<\/strong><\/p>\n<p>1.  <strong><code>import 'bootstrap\/dist\/css\/bootstrap.css'<\/code><\/strong>: Bu sat\u0131r, Bootstrap&#8217;\u0131n temel CSS stil dosyalar\u0131n\u0131 projenize dahil eder. Bu stiller, BootstrapVue bile\u015fenlerinin do\u011fru g\u00f6r\u00fcnmesini sa\u011flar.<br \/>\n2.  <strong><code>import 'bootstrap-vue\/dist\/bootstrap-vue.css'<\/code><\/strong>: Bu sat\u0131r, BootstrapVue&#8217;nun kendi \u00f6zel stillerini ve Bootstrap 4 \u00fczerinde yapt\u0131\u011f\u0131 de\u011fi\u015fiklikleri i\u00e7erir.<br \/>\n3.  <strong><code>import BootstrapVue from 'bootstrap-vue'<\/code><\/strong>: Bu sat\u0131r, BootstrapVue eklentisini i\u00e7e aktar\u0131r.<br \/>\n4.  <strong><code>Vue.use(BootstrapVue)<\/code><\/strong>: Bu sat\u0131r, Vue&#8217;ya BootstrapVue&#8217;yu global bir eklenti olarak kullanmas\u0131n\u0131 s\u00f6yler. Bu i\u015flemden sonra, uygulaman\u0131zdaki t\u00fcm Vue bile\u015fenlerinde <code><b-button><\/code>, <code><b-card><\/code> gibi BootstrapVue bile\u015fenlerini do\u011frudan kullanabilirsiniz.<\/p>\n<p>E\u011fer <code>bootstrap-icons<\/code> paketini y\u00fcklediyseniz ve ikonlar\u0131 kullanmak istiyorsan\u0131z, <code>main.js<\/code> dosyan\u0131za <code>IconsPlugin<\/code>&#8216;i de eklemeniz gerekir:<\/p>\n<pre><code class=\"language-javascript\">import Vue from 'vue'\nimport App from '.\/App.vue'\n\nimport 'bootstrap\/dist\/css\/bootstrap.css'\nimport 'bootstrap-vue\/dist\/bootstrap-vue.css'\n\nimport { BootstrapVue, IconsPlugin } from 'bootstrap-vue' \/\/ IconsPlugin'i ekledik\n\nVue.config.productionTip = false\n\nVue.use(BootstrapVue)\nVue.use(IconsPlugin) \/\/ IconsPlugin'i de kullan\u0131yoruz\n\nnew Vue({\n  render: h => h(App),\n}).$mount('#app')<\/code><\/pre>\n<p>Art\u0131k Vue.js uygulaman\u0131zda BootstrapVue&#8217;yu kullanmaya haz\u0131rs\u0131n\u0131z! Uygulaman\u0131z\u0131 <code>npm run serve<\/code> veya <code>yarn serve<\/code> komutuyla ba\u015flatabilir ve BootstrapVue bile\u015fenlerini test etmeye ba\u015flayabilirsiniz.<\/p>\n<h4>Global CSS\/SCSS Ayarlar\u0131 (Opsiyonel ama \u00d6nemli)<\/h4>\n<p>Yukar\u0131daki kurulum, Bootstrap&#8217;\u0131n varsay\u0131lan CSS&#8217;ini do\u011frudan kullan\u0131r. Ancak, Bootstrap&#8217;\u0131n g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc \u00f6zelle\u015ftirmek isterseniz (renkler, fontlar, bo\u015fluklar vb.), SCSS (Sass) de\u011fi\u015fkenlerini kullanmak en iyi yoldur. Bu, Bootstrap&#8217;\u0131n kaynak SCSS dosyalar\u0131n\u0131 projenize dahil etmenizi ve kendi de\u011fi\u015fkenlerinizle varsay\u0131lan de\u011ferleri ge\u00e7ersiz k\u0131lman\u0131z\u0131 gerektirir.<\/p>\n<p>1.  <strong><code>vue.config.js<\/code> Olu\u015fturma (Gerekliyse):<\/strong> E\u011fer projenizde zaten bir <code>vue.config.js<\/code> dosyas\u0131 yoksa, projenizin k\u00f6k dizininde bu dosyay\u0131 olu\u015fturun. Bu dosya, Vue CLI&#8217;nin webpack yap\u0131land\u0131rmas\u0131n\u0131 \u00f6zelle\u015ftirmenizi sa\u011flar.<\/p>\n<pre><code class=\"language-javascript\">\/\/ vue.config.js\n    module.exports = {\n      css: {\n        loaderOptions: {\n          sass: {\n            \/\/ Sass de\u011fi\u015fkenlerini global olarak tan\u0131mlay\u0131n\n            \/\/ Bu, her SCSS dosyas\u0131na manuel olarak import etme ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r\n            additionalData: <code>@import \"~@\/assets\/custom.scss\";<\/code>\n          }\n        }\n      }\n    };<\/code><\/pre>\n<p>    <strong>Not:<\/strong> <code>additionalData<\/code> veya <code>prependData<\/code> kullan\u0131m\u0131, kulland\u0131\u011f\u0131n\u0131z <code>sass-loader<\/code> s\u00fcr\u00fcm\u00fcne g\u00f6re de\u011fi\u015fiklik g\u00f6sterebilir. E\u011fer hata al\u0131rsan\u0131z, dok\u00fcmantasyonu kontrol edin. <code>~@\/assets\/custom.scss<\/code> ifadesi, <code>@\/assets\/custom.scss<\/code> dosyas\u0131n\u0131 projenizin k\u00f6k dizinindeki <code>assets<\/code> klas\u00f6r\u00fcnde arayaca\u011f\u0131 anlam\u0131na gelir.<\/p>\n<p>2.  <strong>\u00d6zel SCSS Dosyalar\u0131 Olu\u015fturma:<\/strong> <code>src\/assets\/<\/code> dizininde <code>_variables.scss<\/code> ve <code>custom.scss<\/code> ad\u0131nda iki yeni dosya olu\u015fturun.<\/p>\n<p>    *   <strong><code>src\/assets\/_variables.scss<\/code><\/strong>: Bu dosyada, Bootstrap&#8217;\u0131n varsay\u0131lan de\u011fi\u015fkenlerini ge\u00e7ersiz k\u0131labilirsiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-scss\">\/\/ src\/assets\/_variables.scss\n        $primary: #6f42c1; \/\/ Mor birincil renk\n        $secondary: #fd7e14; \/\/ Turuncu ikincil renk\n        $font-family-sans-serif: \"Roboto\", sans-serif; \/\/ \u00d6zel font\n        \/\/ Di\u011fer Bootstrap de\u011fi\u015fkenlerini burada ge\u00e7ersiz k\u0131labilirsiniz<\/code><\/pre>\n<p>    *   <strong><code>src\/assets\/custom.scss<\/code><\/strong>: Bu dosya, kendi \u00f6zel stillerinizi veya Bootstrap&#8217;\u0131n t\u00fcm SCSS kaynaklar\u0131n\u0131 i\u00e7e aktaraca\u011f\u0131n\u0131z yerdir.<\/p>\n<pre><code class=\"language-scss\">\/\/ src\/assets\/custom.scss\n        @import '~bootstrap\/scss\/functions';\n        @import '~bootstrap\/scss\/variables'; \/\/ \u00d6nce de\u011fi\u015fkenleri import edin\n        @import '~bootstrap\/scss\/mixins';\n\n        \/\/ Kendi \u00f6zel de\u011fi\u015fkenlerimizi import ediyoruz\n        @import '.\/_variables.scss';\n\n        \/\/ Bootstrap'\u0131n geri kalan\u0131n\u0131 import edin\n        @import '~bootstrap\/scss\/root';\n        @import '~bootstrap\/scss\/reboot';\n        @import '~bootstrap\/scss\/type';\n        \/\/ ... di\u011fer Bootstrap bile\u015fen SCSS dosyalar\u0131\n        @import '~bootstrap\/scss\/buttons';\n        @import '~bootstrap\/scss\/card';\n        \/\/ ... vb.\n\n        \/\/ BootstrapVue'nun kendi \u00f6zel stillerini de import edin\n        @import '~bootstrap-vue\/src\/index.scss';\n\n        \/\/ Kendi \u00f6zel stilleriniz\n        body {\n          background-color: #f8f9fa;\n        }\n        .custom-class {\n          border: 1px solid $primary;\n        }<\/code><\/pre>\n<p>3.  <strong><code>main.js<\/code> G\u00fcncellemesi:<\/strong> <code>main.js<\/code> dosyan\u0131zdaki Bootstrap CSS importlar\u0131n\u0131 kald\u0131r\u0131n ve sadece <code>custom.scss<\/code> dosyas\u0131n\u0131 import edin:<\/p>\n<pre><code class=\"language-javascript\">\/\/ src\/main.js\n    import Vue from 'vue'\n    import App from '.\/App.vue'\n\n    \/\/ Bootstrap ve BootstrapVue CSS'lerini kald\u0131rd\u0131k\n    \/\/ Kendi custom.scss dosyam\u0131z\u0131 i\u00e7e aktar\u0131yoruz\n    import '@\/assets\/custom.scss'\n\n    import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'\n\n    Vue.config.productionTip = false\n\n    Vue.use(BootstrapVue)\n    Vue.use(IconsPlugin)\n\n    new Vue({\n      render: h => h(App),\n    }).$mount('#app')<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma ile, Bootstrap&#8217;\u0131n ve dolay\u0131s\u0131yla BootstrapVue bile\u015fenlerinin g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc tamamen kontrol edebilir, projenizin marka kimli\u011fine uygun hale getirebilirsiniz.<\/p>\n<h3>BootstrapVue Bile\u015fenlerini Kullanmaya Ba\u015flama<\/h3>\n<p>BootstrapVue kurulumunu tamamlad\u0131\u011f\u0131m\u0131za g\u00f6re, art\u0131k bile\u015fenleri kullanmaya ba\u015flayabiliriz. BootstrapVue, Bootstrap 4&#8217;\u00fcn sundu\u011fu her \u015feyi Vue bile\u015fenleri olarak sunar. \u0130\u015fte en yayg\u0131n kullan\u0131lanlardan baz\u0131lar\u0131 ve nas\u0131l kullanaca\u011f\u0131n\u0131z:<\/p>\n<h4>Temel Bile\u015fenler<\/h4>\n<p>BootstrapVue&#8217;nun g\u00fcc\u00fc, HTML etiketleri yerine Vue bile\u015fenleri kullanarak Bootstrap \u00f6zelliklerini kolayca entegre etmenizi sa\u011flamas\u0131d\u0131r.<\/p>\n<p>*   <strong><code>b-button<\/code> (D\u00fc\u011fme):<\/strong><br \/>\n    <code>b-button<\/code> bile\u015feni, Bootstrap&#8217;\u0131n d\u00fc\u011fme stillerini ve davran\u0131\u015flar\u0131n\u0131 sa\u011flar. <code>variant<\/code>, <code>size<\/code>, <code>block<\/code>, <code>pill<\/code>, <code>squared<\/code> gibi prop&#8217;lar ile kolayca \u00f6zelle\u015ftirilebilir.<\/p>\n<pre><code class=\"language-vue\"><template>\n      <div>\n        <b-button variant=\"primary\">Birincil D\u00fc\u011fme<\/b-button>\n        <b-button variant=\"success\" size=\"sm\">K\u00fc\u00e7\u00fck Ba\u015far\u0131l\u0131 D\u00fc\u011fme<\/b-button>\n        <b-button variant=\"outline-danger\" block>Blok Tehlike D\u00fc\u011fmesi<\/b-button>\n        <b-button pill>Yuvarlak D\u00fc\u011fme<\/b-button>\n        <b-button disabled>Devre D\u0131\u015f\u0131 D\u00fc\u011fme<\/b-button>\n      <\/div>\n    <\/template><\/code><\/pre>\n<p>*   <strong><code>b-card<\/code> (Kart):<\/strong><br \/>\n    <code>b-card<\/code> bile\u015feni, i\u00e7erikleri d\u00fczenli bir \u015fekilde g\u00f6stermek i\u00e7in kullan\u0131l\u0131r. <code>title<\/code>, <code>sub-title<\/code>, <code>img-src<\/code>, <code>img-alt<\/code>, <code>header<\/code>, <code>footer<\/code> gibi prop&#8217;lar\u0131 vard\u0131r. Slot&#8217;lar arac\u0131l\u0131\u011f\u0131yla da karma\u015f\u0131k i\u00e7erikler eklenebilir.<\/p>\n<pre><code class=\"language-vue\"><template>\n      <b-card\n        title=\"Kart Ba\u015fl\u0131\u011f\u0131\"\n        sub-title=\"Alt Ba\u015fl\u0131k\"\n        img-src=\"https:\/\/picsum.photos\/600\/300\/?image=25\"\n        img-alt=\"Resim\"\n        img-top\n        tag=\"article\"\n        style=\"max-width: 20rem;\"\n        class=\"mb-2\"\n      >\n        <b-card-text>\n          Bu, BootstrapVue'nun b-card bile\u015feni kullan\u0131larak olu\u015fturulmu\u015f basit bir kartt\u0131r.\n          \u0130\u00e7erik buraya gelir.\n        <\/b-card-text>\n\n        <b-button href=\"#\" variant=\"primary\">Daha Fazla<\/b-button>\n      <\/b-card>\n    <\/template><\/code><\/pre>\n<p>*   <strong><code>b-navbar<\/code> (Navigasyon \u00c7ubu\u011fu):<\/strong><br \/>\n    <code>b-navbar<\/code> ve ilgili bile\u015fenler (<code>b-nav-item<\/code>, <code>b-navbar-brand<\/code>, <code>b-navbar-toggle<\/code>, <code>b-collapse<\/code>) ile duyarl\u0131 navigasyon \u00e7ubuklar\u0131 olu\u015fturulabilir.<\/p>\n<pre><code class=\"language-vue\"><template>\n      <b-navbar toggleable=\"lg\" type=\"dark\" variant=\"info\">\n        <b-navbar-brand href=\"#\">BootstrapVue Uygulamas\u0131<\/b-navbar-brand>\n\n        <b-navbar-toggle target=\"nav-collapse\"><\/b-navbar-toggle>\n\n        <b-collapse id=\"nav-collapse\" is-nav>\n          <b-navbar-nav>\n            <b-nav-item href=\"#\">Anasayfa<\/b-nav-item>\n            <b-nav-item href=\"#\">Hakk\u0131m\u0131zda<\/b-nav-item>\n            <b-nav-item href=\"#\" disabled>Servisler<\/b-nav-item>\n          <\/b-navbar-nav>\n\n          <!-- Sa\u011f hizalanm\u0131\u015f nav \u00f6\u011feleri -->\n          <b-navbar-nav class=\"ml-auto\">\n            <b-nav-item-dropdown text=\"Kullan\u0131c\u0131\" right>\n              <b-dropdown-item href=\"#\">Profil<\/b-dropdown-item>\n              <b-dropdown-item href=\"#\">Ayarlar<\/b-dropdown-item>\n              <b-dropdown-item href=\"#\">\u00c7\u0131k\u0131\u015f<\/b-dropdown-item>\n            <\/b-nav-item-dropdown>\n          <\/b-navbar-nav>\n        <\/b-collapse>\n      <\/b-navbar>\n    <\/template><\/code><\/pre>\n<p>*   <strong>Form Bile\u015fenleri (<code>b-form-input<\/code>, <code>b-form-select<\/code>, <code>b-form-checkbox<\/code>, vb.):<\/strong><br \/>\n    BootstrapVue, Bootstrap&#8217;\u0131n t\u00fcm form kontrollerini Vue bile\u015fenleri olarak sa\u011flar. <code>v-model<\/code> ile veri ba\u011flama, <code>state<\/code> prop&#8217;u ile do\u011frulama durumlar\u0131 ve <code>b-form-group<\/code> ile etiketleme ve yard\u0131mc\u0131 metin ekleme kolayca yap\u0131labilir.<\/p>\n<pre><code class=\"language-vue\"><template>\n      <b-form @submit.prevent=\"onSubmit\">\n        <b-form-group\n          id=\"input-group-1\"\n          label=\"E-posta Adresiniz:\"\n          label-for=\"input-1\"\n          description=\"E-postan\u0131z\u0131 asla kimseyle payla\u015fmayaca\u011f\u0131z.\"\n        >\n          <b-form-input\n            id=\"input-1\"\n            v-model=\"form.email\"\n            type=\"email\"\n            placeholder=\"E-posta girin\"\n            required\n          ><\/b-form-input>\n        <\/b-form-group>\n\n        <b-form-group id=\"input-group-2\" label=\"Ad\u0131n\u0131z:\" label-for=\"input-2\">\n          <b-form-input\n            id=\"input-2\"\n            v-model=\"form.name\"\n            placeholder=\"Ad\u0131n\u0131z\u0131 girin\"\n            required\n          ><\/b-form-input>\n        <\/b-form-group>\n\n        <b-form-group id=\"input-group-3\" label=\"Tercihiniz:\" label-for=\"input-3\">\n          <b-form-select\n            id=\"input-3\"\n            v-model=\"form.food\"\n            :options=\"foods\"\n            required\n          ><\/b-form-select>\n        <\/b-form-group>\n\n        <b-form-group id=\"input-group-4\">\n          <b-form-checkbox v-model=\"form.checked\">Beni Hat\u0131rla<\/b-form-checkbox>\n        <\/b-form-group>\n\n        <b-button type=\"submit\" variant=\"primary\">G\u00f6nder<\/b-button>\n        <b-button type=\"reset\" variant=\"danger\">S\u0131f\u0131rla<\/b-button>\n      <\/b-form>\n    <\/template>\n\n    <script>\n    export default {\n      data() {\n        return {\n          form: {\n            email: '',\n            name: '',\n            food: null,\n            checked: false\n          },\n          foods: [{ text: 'Birini Se\u00e7in', value: null }, 'Elma', 'Muz', 'Portakal']\n        }\n      },\n      methods: {\n        onSubmit() {\n          alert(JSON.stringify(this.form))\n        }\n      }\n    }\n    <\/script><\/code><\/pre>\n<h4>Layout ve Grid Sistemi<\/h4>\n<p>Bootstrap&#8217;\u0131n en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri, duyarl\u0131 grid sistemidir. BootstrapVue, bu sistemi <code>b-container<\/code>, <code>b-row<\/code> ve <code>b-col<\/code> bile\u015fenleri arac\u0131l\u0131\u011f\u0131yla sa\u011flar.<\/p>\n<p>*   <strong><code>b-container<\/code><\/strong>: \u0130\u00e7eri\u011fi sabit geni\u015flikte veya ak\u0131\u015fkan (fluid) bir kapsay\u0131c\u0131ya yerle\u015ftirir.<br \/>\n*   <strong><code>b-row<\/code><\/strong>: S\u00fctunlar i\u00e7in bir sat\u0131r olu\u015fturur.<br \/>\n*   <strong><code>b-col<\/code><\/strong>: Sat\u0131rlar i\u00e7indeki s\u00fctunlar\u0131 temsil eder ve ekran boyutlar\u0131na g\u00f6re geni\u015fliklerini ayarlamak i\u00e7in prop&#8217;lar al\u0131r (<code>cols<\/code>, <code>sm<\/code>, <code>md<\/code>, <code>lg<\/code>, <code>xl<\/code>).<\/p>\n<pre><code class=\"language-vue\"><template>\n  <b-container class=\"bv-example-row\">\n    <b-row>\n      <b-col>1 of 3<\/b-col>\n      <b-col>2 of 3<\/b-col>\n      <b-col>3 of 3<\/b-col>\n    <\/b-row>\n\n    <b-row class=\"mt-3\">\n      <b-col sm=\"8\">sm=8<\/b-col>\n      <b-col sm=\"4\">sm=4<\/b-col>\n    <\/b-row>\n\n    <b-row class=\"mt-3\">\n      <b-col cols=\"12\" md=\"6\" lg=\"4\">12-col, md-6, lg-4<\/b-col>\n      <b-col cols=\"12\" md=\"6\" lg=\"4\">12-col, md-6, lg-4<\/b-col>\n      <b-col cols=\"12\" md=\"12\" lg=\"4\">12-col, md-12, lg-4<\/b-col>\n    <\/b-row>\n  <\/b-container>\n<\/template><\/code><\/pre>\n<p>Bu \u00f6rnekler, BootstrapVue bile\u015fenlerinin ne kadar sezgisel ve kolay kullan\u0131labilece\u011fini g\u00f6stermektedir. Her bile\u015fen, Bootstrap&#8217;\u0131n ilgili HTML yap\u0131s\u0131n\u0131 ve JavaScript davran\u0131\u015f\u0131n\u0131 Vue&#8217;nun reaktif do\u011fas\u0131yla birle\u015ftirir.<\/p>\n<h3>Tema \u00d6zelle\u015ftirmesi ve Geli\u015fmi\u015f Kullan\u0131m<\/h3>\n<p>BootstrapVue, Bootstrap 4&#8217;\u00fcn t\u00fcm \u00f6zelle\u015ftirme yeteneklerini Vue.js ekosistemine ta\u015f\u0131r. Uygulaman\u0131z\u0131n benzersiz bir g\u00f6r\u00fcn\u00fcme sahip olmas\u0131n\u0131 sa\u011flamak i\u00e7in tema \u00f6zelle\u015ftirmesi ve baz\u0131 geli\u015fmi\u015f kullan\u0131m tekniklerini ke\u015ffedelim.<\/p>\n<h4>SCSS De\u011fi\u015fkenleri ile Tema Olu\u015fturma<\/h4>\n<p>Daha \u00f6nce &#8220;Global CSS\/SCSS Ayarlar\u0131&#8221; b\u00f6l\u00fcm\u00fcnde bahsetti\u011fimiz gibi, Bootstrap&#8217;\u0131n g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc \u00f6zelle\u015ftirmenin en g\u00fc\u00e7l\u00fc yolu SCSS de\u011fi\u015fkenlerini kullanmakt\u0131r. Bu y\u00f6ntem, Bootstrap&#8217;\u0131n varsay\u0131lan renklerini, fontlar\u0131n\u0131, bo\u015fluklar\u0131n\u0131 ve di\u011fer stil \u00f6zelliklerini global olarak de\u011fi\u015ftirmenize olanak tan\u0131r.<\/p>\n<p><strong>Ad\u0131mlar:<\/strong><\/p>\n<p>1.  <strong><code>src\/assets\/_variables.scss<\/code> dosyas\u0131n\u0131 olu\u015fturun veya g\u00fcncelleyin.<\/strong> Bu dosyada, ge\u00e7ersiz k\u0131lmak istedi\u011finiz Bootstrap SCSS de\u011fi\u015fkenlerini tan\u0131mlay\u0131n. Bootstrap dok\u00fcmantasyonunda t\u00fcm de\u011fi\u015fkenlerin bir listesini bulabilirsiniz.<\/p>\n<pre><code class=\"language-scss\">\/\/ src\/assets\/_variables.scss\n    $theme-colors: (\n      \"primary\": #722f37, \/\/ \u00d6zel birincil renk\n      \"secondary\": #f2af29, \/\/ \u00d6zel ikincil renk\n      \"success\": #4CAF50\n    );\n\n    $font-family-base: 'Open Sans', sans-serif;\n    $body-bg: #f5f5f5;\n    $body-color: #333;\n    $border-radius: .5rem;\n    $enable-shadows: true;<\/code><\/pre>\n<p>    Burada <code>$theme-colors<\/code> haritas\u0131n\u0131 kullanarak varsay\u0131lan renkleri ge\u00e7ersiz k\u0131ld\u0131k ve baz\u0131 genel stil ayarlar\u0131n\u0131 de\u011fi\u015ftirdik.<br \/>\n2.  <strong><code>src\/assets\/custom.scss<\/code> dosyas\u0131n\u0131 olu\u015fturun veya g\u00fcncelleyin.<\/strong> Bu dosya, Bootstrap&#8217;\u0131n ve BootstrapVue&#8217;nun SCSS kaynaklar\u0131n\u0131 do\u011fru s\u0131rada i\u00e7e aktar\u0131r ve sizin \u00f6zel de\u011fi\u015fkenlerinizi uygular.<\/p>\n<pre><code class=\"language-scss\">\/\/ src\/assets\/custom.scss\n    \/\/ 1. Bootstrap functions, variables ve mixins'i import edin\n    @import '~bootstrap\/scss\/functions';\n    @import '~bootstrap\/scss\/variables';\n    @import '~bootstrap\/scss\/mixins';\n\n    \/\/ 2. Kendi \u00f6zel de\u011fi\u015fkenlerimizi import edin (varsay\u0131lanlar\u0131 ge\u00e7ersiz k\u0131lacak)\n    @import '.\/_variables.scss';\n\n    \/\/ 3. Bootstrap'\u0131n geri kalan\u0131n\u0131 import edin (art\u0131k yeni de\u011fi\u015fkenlerle derlenecek)\n    @import '~bootstrap\/scss\/root';\n    @import '~bootstrap\/scss\/reboot';\n    @import '~bootstrap\/scss\/type';\n    @import '~bootstrap\/scss\/images';\n    @import '~bootstrap\/scss\/code';\n    @import '~bootstrap\/scss\/grid';\n    @import '~bootstrap\/scss\/tables';\n    @import '~bootstrap\/scss\/forms';\n    @import '~bootstrap\/scss\/buttons';\n    @import '~bootstrap\/scss\/transitions';\n    @import '~bootstrap\/scss\/dropdown';\n    @import '~bootstrap\/scss\/button-group';\n    @import '~bootstrap\/scss\/input-group';\n    @import '~bootstrap\/scss\/custom-forms';\n    @import '~bootstrap\/scss\/nav';\n    @import '~bootstrap\/scss\/navbar';\n    @import '~bootstrap\/scss\/card';\n    @import '~bootstrap\/scss\/breadcrumb';\n    @import '~bootstrap\/scss\/pagination';\n    @import '~bootstrap\/scss\/badge';\n    @import '~bootstrap\/scss\/jumbotron';\n    @import '~bootstrap\/scss\/alert';\n    @import '~bootstrap\/scss\/progress';\n    @import '~bootstrap\/scss\/media';\n    @import '~bootstrap\/scss\/list-group';\n    @import '~bootstrap\/scss\/close';\n    @import '~bootstrap\/scss\/toasts';\n    @import '~bootstrap\/scss\/modal';\n    @import '~bootstrap\/scss\/tooltip';\n    @import '~bootstrap\/scss\/popover';\n    @import '~bootstrap\/scss\/carousel';\n    @import '~bootstrap\/scss\/spinners';\n    @import '~bootstrap\/scss\/utilities';\n    @import '~bootstrap\/scss\/print';\n\n    \/\/ 4. BootstrapVue'nun kendi \u00f6zel stillerini import edin\n    @import '~bootstrap-vue\/src\/index.scss';\n\n    \/\/ 5. Kendi ek \u00f6zel stilleriniz\n    h1 {\n      color: map-get($theme-colors, \"primary\");\n    }<\/code><\/pre>\n<p>    Bu yap\u0131land\u0131rma, uygulaman\u0131z\u0131n tamamen markan\u0131za uygun bir g\u00f6r\u00fcn\u00fcme sahip olmas\u0131n\u0131 sa\u011flar ve gelecekteki stil de\u011fi\u015fikliklerini merkezi bir yerden y\u00f6netmenize olanak tan\u0131r.<\/p>\n<h4>Dinamik Bile\u015fenler ve Slotlar<\/h4>\n<p>BootstrapVue bile\u015fenleri, Vue&#8217;nun slot mekanizmas\u0131n\u0131 geni\u015f \u00f6l\u00e7\u00fcde kullan\u0131r. Bu, bile\u015fenlerin varsay\u0131lan yap\u0131s\u0131n\u0131 korurken i\u00e7ine \u00f6zel i\u00e7erik eklemenizi sa\u011flar.<\/p>\n<p>*   <strong><code>b-modal<\/code> ile Dinamik \u0130\u00e7erik:<\/strong> <code>b-modal<\/code> bile\u015feni, genellikle slot&#8217;lar arac\u0131l\u0131\u011f\u0131yla ba\u015fl\u0131k, g\u00f6vde ve altbilgi i\u00e7eri\u011fini al\u0131r.<\/p>\n<pre><code class=\"language-vue\"><template>\n      <div>\n        <b-button v-b-modal.my-modal>Modal\u0131 A\u00e7<\/b-button>\n\n        <b-modal id=\"my-modal\" title=\"\u00d6zel Ba\u015fl\u0131kl\u0131 Modal\">\n          <p class=\"my-4\">Bu, modal\u0131n g\u00f6vde i\u00e7eri\u011fidir.<\/p>\n          <p>Dinamik olarak eklenebilir herhangi bir Vue bile\u015feni veya HTML burada yer alabilir.<\/p>\n\n          <template #modal-footer=\"{ ok, cancel, hide }\">\n            <b-button size=\"sm\" variant=\"success\" @click=\"ok()\">\n              Tamam\n            <\/b-button>\n            <b-button size=\"sm\" variant=\"danger\" @click=\"cancel()\">\n              \u0130ptal\n            <\/b-button>\n            <b-button size=\"sm\" variant=\"outline-secondary\" @click=\"hide('forget')\">\n              Vazge\u00e7\n            <\/b-button>\n          <\/template>\n        <\/b-modal>\n      <\/div>\n    <\/template><\/code><\/pre>\n<p>    Yukar\u0131daki \u00f6rnekte, <code>#modal-footer<\/code> adl\u0131 adland\u0131r\u0131lm\u0131\u015f slot kullan\u0131larak modal\u0131n altbilgi d\u00fc\u011fmeleri tamamen \u00f6zelle\u015ftirilmi\u015ftir.<\/p>\n<p>*   <strong><code>b-table<\/code> ile \u00d6zel H\u00fccreler:<\/strong> <code>b-table<\/code> bile\u015feni, veri tablolar\u0131 olu\u015fturmak i\u00e7in \u00e7ok g\u00fc\u00e7l\u00fcd\u00fcr ve slot&#8217;lar arac\u0131l\u0131\u011f\u0131yla her bir s\u00fctunun veya h\u00fccrenin g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<pre><code class=\"language-vue\"><template>\n      <b-table :items=\"items\" :fields=\"fields\">\n        <template #cell(actions)=\"row\">\n          <b-button size=\"sm\" @click=\"info(row.item, row.index, $event.target)\" class=\"mr-1\">\n            Bilgi\n          <\/b-button>\n          <b-button size=\"sm\" @click=\"row.toggleDetails\">\n            {{ row.detailsShowing ? 'Gizle' : 'G\u00f6ster' }} Detaylar\n          <\/b-button>\n        <\/template>\n\n        <template #row-details=\"row\">\n          <b-card>\n            <p>Kullan\u0131c\u0131 ID: {{ row.item.id }}<\/p>\n            <p>E-posta: {{ row.item.email }}<\/p>\n          <\/b-card>\n        <\/template>\n      <\/b-table>\n    <\/template>\n\n    <script>\n    export default {\n      data() {\n        return {\n          fields: ['first_name', 'last_name', 'age', 'actions'],\n          items: [\n            { id: 1, first_name: 'Ay\u015fe', last_name: 'Y\u0131lmaz', age: 40, email: 'ayse@example.com' },\n            { id: 2, first_name: 'Can', last_name: 'Kara', age: 21, email: 'can@example.com' },\n            { id: 3, first_name: 'Elif', last_name: 'Demir', age: 89, email: 'elif@example.com' }\n          ]\n        }\n      },\n      methods: {\n        info(item, index, button) {\n          alert(<code>Item: ${JSON.stringify(item)}, Index: ${index}<\/code>)\n        }\n      }\n    }\n    <\/script><\/code><\/pre>\n<p>    Bu \u00f6rnekte, <code>actions<\/code> s\u00fctunu i\u00e7in \u00f6zel d\u00fc\u011fmeler olu\u015fturulmu\u015f ve <code>row-details<\/code> slot&#8217;u ile her sat\u0131r i\u00e7in ek detaylar g\u00f6sterilmi\u015ftir.<\/p>\n<h4>Duyarl\u0131 Tasar\u0131m \u0130pu\u00e7lar\u0131<\/h4>\n<p>BootstrapVue, Bootstrap&#8217;\u0131n duyarl\u0131 tasar\u0131m s\u0131n\u0131flar\u0131n\u0131 ve grid sistemini tam olarak destekler.<\/p>\n<p>*   <strong>Grid S\u0131n\u0131flar\u0131n\u0131 Etkin Kullanma:<\/strong> <code>b-col<\/code> bile\u015feninin <code>sm<\/code>, <code>md<\/code>, <code>lg<\/code>, <code>xl<\/code> gibi prop&#8217;lar\u0131n\u0131 kullanarak farkl\u0131 ekran boyutlar\u0131nda bile\u015fenlerin geni\u015fli\u011fini ve yerle\u015fimini ayarlayabilirsiniz.<\/p>\n<pre><code class=\"language-vue\"><b-container>\n      <b-row>\n        <b-col cols=\"12\" md=\"6\" lg=\"4\">B\u00fcy\u00fck ekranlarda 4 s\u00fctun, orta ekranlarda 6 s\u00fctun<\/b-col>\n        <b-col cols=\"12\" md=\"6\" lg=\"8\">B\u00fcy\u00fck ekranlarda 8 s\u00fctun, orta ekranlarda 6 s\u00fctun<\/b-col>\n      <\/b-row>\n    <\/b-container><\/code><\/pre>\n<p>*   <strong>Yard\u0131mc\u0131 S\u0131n\u0131flar:<\/strong> <code>d-none<\/code>, <code>d-block<\/code>, <code>text-center<\/code>, <code>m-auto<\/code>, <code>p-3<\/code> gibi Bootstrap&#8217;\u0131n yard\u0131mc\u0131 s\u0131n\u0131flar\u0131n\u0131 do\u011frudan Vue bile\u015fenlerinize <code>class<\/code> prop&#8217;u arac\u0131l\u0131\u011f\u0131yla uygulayabilirsiniz.<\/p>\n<pre><code class=\"language-vue\"><b-button class=\"d-none d-md-block\">Sadece orta ve \u00fczeri ekranlarda g\u00f6r\u00fcn\u00fcr<\/b-button>\n    <b-img src=\"...\" fluid alt=\"Fluid image\" class=\"mx-auto d-block\"><\/b-img><\/code><\/pre>\n<h4>Eri\u015filebilirlik (Accessibility)<\/h4>\n<p>BootstrapVue&#8217;nun \u00f6nemli bir avantaj\u0131, bile\u015fenlerinin WAI-ARIA standartlar\u0131na uygun olarak tasarlanm\u0131\u015f olmas\u0131d\u0131r. Bu, uygulaman\u0131z\u0131n ekran okuyucular ve klavye navigasyonu gibi yard\u0131mc\u0131 teknolojilerle daha iyi \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>*   <strong>Otomatik ARIA Nitelikleri:<\/strong> \u00c7o\u011fu BootstrapVue bile\u015feni, gerekli ARIA niteliklerini (\u00f6rne\u011fin, <code>aria-label<\/code>, <code>aria-expanded<\/code>) otomatik olarak ekler.<br \/>\n*   <strong>Kendi Bile\u015fenlerinizde Eri\u015filebilirlik:<\/strong> Kendi \u00f6zel Vue bile\u015fenlerinizi olu\u015ftururken, BootstrapVue&#8217;nun sa\u011flad\u0131\u011f\u0131 eri\u015filebilirlik ipu\u00e7lar\u0131n\u0131 ve Bootstrap&#8217;\u0131n genel eri\u015filebilirlik y\u00f6nergelerini takip etmeniz \u00f6nemlidir. \u00d6rne\u011fin, form kontrolleriniz i\u00e7in <code>label<\/code> etiketlerini <code>label-for<\/code> ile do\u011fru bir \u015fekilde e\u015fle\u015ftirdi\u011finizden emin olun.<\/p>\n<h3>Yayg\u0131n Hatalar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>BootstrapVue ile \u00e7al\u0131\u015f\u0131rken kar\u015f\u0131la\u015f\u0131labilecek baz\u0131 yayg\u0131n sorunlar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri a\u015fa\u011f\u0131da listelenmi\u015ftir.<\/p>\n<h4>jQuery Ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 Sorunu<\/h4>\n<p><strong>Sorun:<\/strong> Geleneksel Bootstrap&#8217;\u0131n JavaScript bile\u015fenleri jQuery&#8217;ye ba\u011f\u0131ml\u0131d\u0131r. Vue.js projelerinde jQuery kullanmak istenmez ve hatta \u00e7ak\u0131\u015fmalara neden olabilir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong> BootstrapVue, Bootstrap&#8217;\u0131n JavaScript bile\u015fenlerini saf Vue.js koduyla yeniden uygulad\u0131\u011f\u0131 i\u00e7in jQuery&#8217;ye <em>hi\u00e7bir \u015fekilde<\/em> ba\u011f\u0131ml\u0131 de\u011fildir. Bu, BootstrapVue&#8217;nun en b\u00fcy\u00fck avantajlar\u0131ndan biridir. E\u011fer bir BootstrapVue bile\u015feni d\u00fczg\u00fcn \u00e7al\u0131\u015fm\u0131yorsa, sorun genellikle jQuery ba\u011f\u0131ml\u0131l\u0131\u011f\u0131yla ilgili de\u011fildir; bunun yerine BootstrapVue&#8217;nun do\u011fru kurulup kurulmad\u0131\u011f\u0131na veya bile\u015fenin do\u011fru kullan\u0131l\u0131p kullan\u0131lmad\u0131\u011f\u0131na bak\u0131lmal\u0131d\u0131r. Ekstra jQuery paketleri y\u00fcklemekten ka\u00e7\u0131n\u0131n.<\/p>\n<h4>CSS \u00c7ak\u0131\u015fmalar\u0131<\/h4>\n<p><strong>Sorun:<\/strong> Bazen, uygulaman\u0131zdaki di\u011fer CSS k\u00fct\u00fcphaneleri veya \u00f6zel stiller, BootstrapVue&#8217;nun stilleriyle \u00e7ak\u0131\u015fabilir ve beklenmedik g\u00f6rsel sorunlara yol a\u00e7abilir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong><\/p>\n<p>*   <strong>\u0130\u00e7e Aktarma S\u0131ras\u0131:<\/strong> CSS dosyalar\u0131n\u0131n i\u00e7e aktarma s\u0131ras\u0131 \u00f6nemlidir. Genellikle, Bootstrap&#8217;\u0131n temel stilleri \u00f6nce, ard\u0131ndan BootstrapVue&#8217;nun stilleri ve en son olarak da kendi \u00f6zel stilleriniz gelmelidir. Bu, kendi stillerinizin Bootstrap&#8217;\u0131n varsay\u0131lanlar\u0131n\u0131 ge\u00e7ersiz k\u0131lmas\u0131na olanak tan\u0131r.<\/p>\n<pre><code class=\"language-javascript\">\/\/ main.js\n    import 'bootstrap\/dist\/css\/bootstrap.css'\n    import 'bootstrap-vue\/dist\/bootstrap-vue.css'\n    import '@\/assets\/custom.css' \/\/ Kendi \u00f6zel stilleriniz<\/code><\/pre>\n<p>    E\u011fer SCSS ile \u00f6zelle\u015ftirme yap\u0131yorsan\u0131z, <code>custom.scss<\/code> dosyan\u0131z\u0131n i\u00e7indeki <code>@import<\/code> s\u0131ras\u0131n\u0131n do\u011fru oldu\u011fundan emin olun (Bootstrap de\u011fi\u015fkenleri -> Kendi de\u011fi\u015fkenleriniz -> Bootstrap bile\u015fenleri -> BootstrapVue stilleri -> Kendi \u00f6zel stilleriniz).<br \/>\n*   <strong>Kapsaml\u0131 Stiller (<code><\/p>\n<style scoped><\/code>):<\/strong> Vue bile\u015fenlerinizde <code><\/p>\n<style scoped><\/code> kullanarak stillerinizin yaln\u0131zca o bile\u015fene \u00f6zg\u00fc olmas\u0131n\u0131 sa\u011flayabilirsiniz. Bu, global stil \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olur. Ancak, BootstrapVue bile\u015fenlerinin i\u00e7indeki elementleri stilize etmek i\u00e7in genellikle global stillere veya derin se\u00e7icilere (<code>>>><\/code> veya <code>\/deep\/<\/code>) ihtiyac\u0131n\u0131z olabilir.<br \/>\n*   <strong>CSS \u00d6ncelik Kurallar\u0131:<\/strong> CSS se\u00e7icilerinin \u00f6nceliklerini anlayarak (ID > S\u0131n\u0131f > Etiket), kendi stillerinizi daha spesifik hale getirerek Bootstrap stillerini ge\u00e7ersiz k\u0131labilirsiniz.<\/p>\n<h4>Bile\u015fenlerin Do\u011fru Y\u00fcklenmemesi veya \u00c7al\u0131\u015fmamas\u0131<\/h4>\n<p><strong>Sorun:<\/strong> Bir BootstrapVue bile\u015fenini kullanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda, ya taray\u0131c\u0131 konsolunda bir hata al\u0131rs\u0131n\u0131z (\u00f6rne\u011fin, \"Unknown custom element: <code><b-button><\/code>\") ya da bile\u015fen g\u00f6rsel olarak do\u011fru g\u00f6r\u00fcnmez veya i\u015flevsel de\u011fildir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong><\/p>\n<p>*   <strong><code>Vue.use(BootstrapVue)<\/code> \u00c7a\u011fr\u0131s\u0131:<\/strong> <code>src\/main.js<\/code> dosyan\u0131zda <code>Vue.use(BootstrapVue)<\/code> sat\u0131r\u0131n\u0131n bulundu\u011fundan ve <code>new Vue(...)<\/code> \u00e7a\u011fr\u0131s\u0131ndan \u00f6nce geldi\u011finden emin olun. Bu olmadan, Vue BootstrapVue bile\u015fenlerini tan\u0131yamaz.<br \/>\n*   <strong>Do\u011fru \u0130\u00e7e Aktarma:<\/strong> <code>main.js<\/code> dosyan\u0131zda <code>bootstrap\/dist\/css\/bootstrap.css<\/code> ve <code>bootstrap-vue\/dist\/bootstrap-vue.css<\/code> dosyalar\u0131n\u0131n do\u011fru bir \u015fekilde i\u00e7e aktar\u0131ld\u0131\u011f\u0131ndan emin olun. E\u011fer SCSS ile \u00f6zelle\u015ftirme yap\u0131yorsan\u0131z, <code>custom.scss<\/code> dosyan\u0131z\u0131n t\u00fcm gerekli Bootstrap ve BootstrapVue SCSS dosyalar\u0131n\u0131 i\u00e7e aktard\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>Do\u011fru Bile\u015fen Adlar\u0131:<\/strong> BootstrapVue bile\u015fenlerinin adlar\u0131n\u0131 do\u011fru yazd\u0131\u011f\u0131n\u0131zdan emin olun (\u00f6rne\u011fin, <code><b-button><\/code> yerine <code><button><\/code> veya <code><BButton><\/code> yazmak hatalara yol a\u00e7ar).<br \/>\n*   <strong>Prop ve Olay Kontrol\u00fc:<\/strong> Bile\u015fenlerin bekledi\u011fi prop'lar\u0131 ve yayd\u0131\u011f\u0131 olaylar\u0131 do\u011fru kulland\u0131\u011f\u0131n\u0131zdan emin olun. Yanl\u0131\u015f prop isimleri veya beklenen veri tiplerine uymayan de\u011ferler, bile\u015fenin yanl\u0131\u015f \u00e7al\u0131\u015fmas\u0131na neden olabilir. BootstrapVue dok\u00fcmantasyonunu kontrol edin.<br \/>\n*   <strong>Vue Geli\u015ftirici Ara\u00e7lar\u0131:<\/strong> Taray\u0131c\u0131n\u0131zdaki Vue Geli\u015ftirici Ara\u00e7lar\u0131'n\u0131 kullanarak bile\u015fen hiyerar\u015fisini inceleyin, prop'lar\u0131 ve veri durumunu kontrol edin. Bu, sorunlar\u0131 te\u015fhis etmek i\u00e7in \u00e7ok de\u011ferli bir ara\u00e7t\u0131r.<\/p>\n<h4>Performans Optimizasyonu<\/h4>\n<p><strong>Sorun:<\/strong> B\u00fcy\u00fck uygulamalarda, t\u00fcm BootstrapVue k\u00fct\u00fcphanesini dahil etmek uygulaman\u0131n ba\u015flang\u0131\u00e7 boyutunu art\u0131rabilir ve y\u00fckleme s\u00fcresini uzatabilir.<\/p>\n<p><strong>\u00c7\u00f6z\u00fcm:<\/strong><\/p>\n<p>*   <strong>A\u011fa\u00e7 Budama (Tree-Shaking):<\/strong> BootstrapVue, mod\u00fcler bir yap\u0131ya sahiptir ve modern paketleyiciler (webpack gibi) a\u011fa\u00e7 budama \u00f6zelli\u011fini kullanarak sadece ger\u00e7ekten kulland\u0131\u011f\u0131n\u0131z bile\u015fenleri nihai paketinize dahil edebilir. Bu, genellikle Vue CLI ile varsay\u0131lan olarak etkindir.<br \/>\n*   <strong>Tek Tek Bile\u015fen \u0130\u00e7e Aktarma:<\/strong> E\u011fer uygulaman\u0131z \u00e7ok b\u00fcy\u00fckse ve sadece belirli BootstrapVue bile\u015fenlerini kullan\u0131yorsan\u0131z, bunlar\u0131 tek tek i\u00e7e aktararak daha ince bir kontrol sa\u011flayabilirsiniz. Bu, <code>main.js<\/code> dosyan\u0131zda <code>Vue.use(BootstrapVue)<\/code> yerine \u015fu \u015fekilde yap\u0131labilir:<\/p>\n<pre><code class=\"language-javascript\">\/\/ main.js\n    import Vue from 'vue'\n    import App from '.\/App.vue'\n\n    import 'bootstrap\/dist\/css\/bootstrap.css'\n    import 'bootstrap-vue\/dist\/bootstrap-vue.css'\n\n    \/\/ Sadece ihtiyac\u0131n\u0131z olan bile\u015fenleri ve eklentileri i\u00e7e aktar\u0131n\n    import { BButton, BCard, BModal, VBModal } from 'bootstrap-vue'\n\n    Vue.config.productionTip = false\n\n    \/\/ Bile\u015fenleri global olarak kaydedin\n    Vue.component('b-button', BButton)\n    Vue.component('b-card', BCard)\n    Vue.component('b-modal', BModal)\n\n    \/\/ Direktifleri kaydedin\n    Vue.directive('b-modal', VBModal)\n\n    new Vue({\n      render: h => h(App),\n    }).$mount('#app')<\/code><\/pre>\n<p>    Bu y\u00f6ntem, \u00f6zellikle k\u00fc\u00e7\u00fck uygulamalar i\u00e7in gereksiz olabilir ancak b\u00fcy\u00fck \u00f6l\u00e7ekli projelerde bundle boyutunu optimize etmek i\u00e7in faydal\u0131d\u0131r.<br \/>\n*   <strong>Asenkron Bile\u015fenler (Lazy Loading):<\/strong> Vue'nun asenkron bile\u015fenler \u00f6zelli\u011fini kullanarak, baz\u0131 BootstrapVue bile\u015fenlerini (\u00f6zellikle daha az kullan\u0131lan veya b\u00fcy\u00fck olanlar\u0131) yaln\u0131zca ihtiya\u00e7 duyuldu\u011funda y\u00fckleyebilirsiniz.<\/p>\n<pre><code class=\"language-javascript\">\/\/ Bir Vue bile\u015feninde\n    components: {\n      MyHeavyModal: () => import('bootstrap-vue').then(({ BModal }) => BModal)\n    }<\/code><\/pre>\n<p>    Bu, ba\u015flang\u0131\u00e7 y\u00fckleme s\u00fcresini azalt\u0131r ve kullan\u0131c\u0131 deneyimini iyile\u015ftirir.<\/p>\n<p>Bu yayg\u0131n sorunlar\u0131 ve \u00e7\u00f6z\u00fcmlerini bilmek, BootstrapVue ile geli\u015ftirme yaparken kar\u015f\u0131la\u015fabilece\u011finiz engelleri a\u015fman\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehber boyunca, Vue.js uygulamalar\u0131n\u0131zda Bootstrap 4'\u00fc BootstrapVue arac\u0131l\u0131\u011f\u0131yla nas\u0131l entegre edece\u011finizi ve kullanaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendik. BootstrapVue'nun sundu\u011fu avantajlar\u0131, geli\u015ftirme ortam\u0131n\u0131n nas\u0131l haz\u0131rlanaca\u011f\u0131n\u0131, kurulum ve entegrasyon s\u00fcre\u00e7lerini, temel bile\u015fenlerin kullan\u0131m\u0131n\u0131, tema \u00f6zelle\u015ftirmesini ve hatta yayg\u0131n hatalara kar\u015f\u0131 \u00e7\u00f6z\u00fcmleri detayl\u0131 bir \u015fekilde inceledik.<\/p>\n<p>Art\u0131k, modern, duyarl\u0131 ve eri\u015filebilir kullan\u0131c\u0131 aray\u00fczlerini Vue.js'in g\u00fcc\u00fcyle ve Bootstrap'\u0131n zengin bile\u015fen k\u00fct\u00fcphanesiyle kolayca olu\u015fturmak i\u00e7in gerekli bilgi ve ara\u00e7lara sahipsiniz. BootstrapVue, jQuery ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 ortadan kald\u0131rarak, Vue'nun reaktif veri ba\u011flama yetenekleriyle tam entegrasyon sa\u011flayarak ve bile\u015fen tabanl\u0131 bir yakla\u015f\u0131mla geli\u015ftirme s\u00fcrecini \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131r\u0131r ve basitle\u015ftirir.<\/p>\n<p>Unutmay\u0131n ki, web geli\u015ftirme s\u00fcrekli evrilen bir aland\u0131r ve BootstrapVue dok\u00fcmantasyonu, her zaman en g\u00fcncel bilgilere ve daha fazla ke\u015ffedilecek \u00f6zelli\u011fe ula\u015fmak i\u00e7in en iyi kaynakt\u0131r. Bu rehber size sa\u011flam bir ba\u015flang\u0131\u00e7 noktas\u0131 sunarken, pratik yaparak ve farkl\u0131 bile\u015fenleri deneyerek yeteneklerinizi daha da geli\u015ftirebilirsiniz.<\/p>\n<p>BootstrapVue ile geli\u015ftirmeye ba\u015flaman\u0131n getirece\u011fi h\u0131z, esneklik ve eri\u015filebilirlik avantajlar\u0131n\u0131 ke\u015ffetmeye devam edin. Ba\u015far\u0131lar dileriz!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Vue.js Uygulamalar\u0131nda Bootstrap 4&#8217;\u00fc BootstrapVue ile Kullanma Rehberi\nModern web geli\u015ftirme d\u00fcnyas\u0131nda, kullan\u0131c\u0131 aray\u00fczlerinin h\u0131zl\u0131 ve e","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1402],"tags":[],"class_list":{"0":"post-35971","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-vue","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Vue.js Uygulamalar\u0131nda Bootstrap 4&#039;\u00fc BootstrapVue ile Kullanma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vue.js Uygulamalar\u0131nda Bootstrap 4&#039;\u00fc BootstrapVue ile Kullanma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Vue.js Uygulamalar\u0131nda Bootstrap 4&#039;\u00fc BootstrapVue ile Kullanma Rehberi Modern web geli\u015ftirme d\u00fcnyas\u0131nda, kullan\u0131c\u0131 aray\u00fczlerinin h\u0131zl\u0131 ve e\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-06T05:41:00+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Vue.js Uygulamalar\u0131nda Bootstrap 4&#8217;\u00fc BootstrapVue ile Kullanma Rehberi\",\"datePublished\":\"2025-12-06T05:41:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/\"},\"wordCount\":3466,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Vue\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/\",\"name\":\"Vue.js Uygulamalar\u0131nda Bootstrap 4'\u00fc BootstrapVue ile Kullanma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-06T05:41:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vue.js Uygulamalar\u0131nda Bootstrap 4&#8217;\u00fc BootstrapVue ile Kullanma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Vue.js Uygulamalar\u0131nda Bootstrap 4'\u00fc BootstrapVue ile Kullanma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Vue.js Uygulamalar\u0131nda Bootstrap 4'\u00fc BootstrapVue ile Kullanma Rehberi","og_description":"Vue.js Uygulamalar\u0131nda Bootstrap 4'\u00fc BootstrapVue ile Kullanma Rehberi Modern web geli\u015ftirme d\u00fcnyas\u0131nda, kullan\u0131c\u0131 aray\u00fczlerinin h\u0131zl\u0131 ve e","og_url":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-06T05:41:00+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Vue.js Uygulamalar\u0131nda Bootstrap 4&#8217;\u00fc BootstrapVue ile Kullanma Rehberi","datePublished":"2025-12-06T05:41:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/"},"wordCount":3466,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Vue"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/","name":"Vue.js Uygulamalar\u0131nda Bootstrap 4'\u00fc BootstrapVue ile Kullanma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-06T05:41:00+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/vue-js-uygulamalarinda-bootstrap-4u-bootstrapvue-ile-kullanma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Vue.js Uygulamalar\u0131nda Bootstrap 4&#8217;\u00fc BootstrapVue ile Kullanma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=35971"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35971\/revisions"}],"predecessor-version":[{"id":35972,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35971\/revisions\/35972"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}