您好,我尝试在我的 vue 3 应用程序中使用 bootstrapVue 和 typescript,这里是我的 main.ts:
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import Vue from 'vue'
import { BootstrapVue } from 'bootstrap-vue'
createApp(App).use(router).use(BootstrapVue).mount('#app')
Run Code Online (Sandbox Code Playgroud)
导致此错误:
src/main.ts:9:32
TS2345: Argument of type 'BootstrapVuePlugin' is not assignable to parameter of type 'Plugin_2'.
Type 'BootstrapVuePlugin' is not assignable to type '{ install: PluginInstallFunction; }'.
Types of property 'install' are incompatible.
Type 'PluginFunction<BvConfigOptions>' is not assignable to type 'PluginInstallFunction'.
Types of parameters 'Vue' and 'app' are …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Bootstrap Vue加载到Laravel 5.6项目中
在官方的文档说,修改webpack.config.js文件,如:
+ module: {
+ rules: [
+ {
+ test: /\.css$/,
+ use: [
+ 'style-loader',
+ 'css-loader'
+ ]
+ }
+ ]
+ }
Run Code Online (Sandbox Code Playgroud)
Webpack文档:https://webpack.js.org/guides/asset-management/#loading-css
我没有webpack.config.js文件所以我尝试使用Laravel mix加载CSS
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css')
.styles('node_modules/bootstrap-vue/dist/bootstrap-vue.css', 'public/css');
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误
mix.combine()需要一个完整的输出文件路径作为第二个参数.
而且我不相信这是正确的做法.
将bootstrap-vue添加到新的Laravel 5.6项目中的正确方法是什么?
我正在使用 vue2 和 bootstrap-vue。实际上我有一个带有一些字段的b 表。其中一个字段是带有布尔值(真/假)的“已发布”。我想在每一行都有一个css 类,其中字段 'released' 的值为 false。例如,用另一种文本颜色显示该行处于非活动状态。
我怎样才能做到这一点?我在 bootstrap-vue 的文档中没有找到解决方案。有人有想法吗?(这是我在这里的第一个问题,如果可能难以理解,请见谅)
示例(只有第 2 项的行应该在表格行上获得一个 css-class,因为它没有被释放):
...
<b-table stacked="md" :items="items" :fields="fields" >
...
<script>
...
export default {
data () {
return {
fields: {
{
key: 'id',
label: 'ID',
sortable: true,
class: 'Left',
},
{
key: 'name',
label: 'Name',
sortable: true,
class: 'Left'
},
{
key: 'released',
label: 'Freigegeben',
sortable: true,
class: 'Left'
},
},
items: [
{
id: '1',
name: 'nameA',
released: …Run Code Online (Sandbox Code Playgroud) 试图获得与文档体验不同的内容:不是通过单击按钮而是在单击行时显示行详细信息。而且文档缺乏有关如何像示例中那样使它与众不同的细节。
<b-table
v-if="tableIsReady"
:items="deals"
:fields="fields"
:per-page="recordsPerPage"
no-local-sorting
@sort-changed="sorting"
responsive
flex
striped
hover
@row-clicked="expandAdditionalInfo"
>
<template slot="row-details" slot-scope="row">
<b-card>
<h1>hello</h1>
</b-card>
</template>
</b-table>
Run Code Online (Sandbox Code Playgroud)
这是我的功能,但我认为它根本不起作用
expandAdditionalInfo(row) {
row.showDetails();
}
Run Code Online (Sandbox Code Playgroud) 我正在Bootstrap-Vue编写一个网页,但我无法更改 上的文本颜色Bootstrap navbar,尤其是b-nav-item-dropdown标签。我曾尝试使用<span class="text-dark"环绕b-nav-item-dropdown标签,但没有奏效。看来, 的变体b-navbar只能将文本颜色变体设置为深色或浅色。
这是我的代码:
<div>
<b-navbar toggleable="md" type="dark" variant="primary">
<b-navbar-toggle target="nav_collapse"></b-navbar-toggle>
<b-collapse is-nav id="nav_collapse">
<b-navbar-nav class="pl-5" inline>
<b-nav-item-dropdown text="Electronics">
<b-dropdown-item href="/">Item 1</b-dropdown-item>
<b-dropdown-item href="/">Item 2</b-dropdown-item>
<b-dropdown-item href="/">Item 3</b-dropdown-item>
<b-dropdown-item href="/">Item 4</b-dropdown-item>
</b-nav-item-dropdown>
<b-nav-item-dropdown text="Sports">
<b-dropdown-item href="/">Item 1</b-dropdown-item>
<b-dropdown-item href="/">Item 2</b-dropdown-item>
<b-dropdown-item href="/">Item 3</b-dropdown-item>
<b-dropdown-item href="/">Item 4</b-dropdown-item>
</b-nav-item-dropdown>
</b-navbar-nav>
<!--Login button-->
<b-navbar-nav class="ml-auto pr-5">
<b-button size="me">Login</b-button>
</b-navbar-nav>
</b-collapse>
</b-navbar>
</div>
Run Code Online (Sandbox Code Playgroud)
我的目标是让所有文本b-nav-item-dropdown都变成黑色而不是灰白色。
我目前正致力于制作一个类似于Github的贡献图的组件,并努力将其作为npm包分享.
vue-contribution-graph使用npm打包的组件不会正确显示工具提示.b-tooltip组件的CSS 正在处理原始项目,但似乎没有在打包的组件中正确包含.实际上,在运行之后npm i vue-contribution-graph,工具提示背景不会出现.
我创建了一个GitHub问题只是为了让它更清晰:https://github.com/estelled/vue-contribution-graph/issues/4
手动安装所有依赖项后,行为保持不变.
我按照本教程进行了npm打包.
文件已更改为打包组件:
package.jsonvue.config.js文件,在包中包含CSS我如何解决它?
我想创建一个用TypeScript编写的可重用包装器函数,用于通过使用组合函数触发 Toast 通知,如 Vue 3.0 的当前规范:组合 API RFC 中所定义。
此示例使用 BootstrapVue v2.0 toast 组件。使用 Vue 2,它将通过根上下文中的this.$bvToastVue 组件实例注入来调用:
this.$bvToast.toast('Error happened', {
title: 'Oh no',
variant: 'danger'
});
Run Code Online (Sandbox Code Playgroud)
这个类似服务的组合函数看起来很像这样:
// File: @/util/notify.ts
export function useNotify() {
const notifyError = (title: string, msg: string) => {
// How to access context.root as in a function component, without passing it to this function?
context.root.$bvToast.toast(msg, {
title,
variant: 'danger'
});
}; …Run Code Online (Sandbox Code Playgroud) 我最近一直在使用vuejs和bootstrap-vue。决定将单元测试添加到我的项目中。
我对单元测试不是很熟悉,因此我正在尝试尝试发现的一切以了解其工作原理。
Login.specs.js
import { shallowMount, mount } from '@vue/test-utils'
import Login from '@/components/auth/Login.vue'
describe('Login.vue', () => {
it('is a Vue instance', () => {
const wrapper = mount(Login, {
mocks: {
$t: () => 'Connexion' // i18N
}
})
const h2 = wrapper.find('h2')
expect(h2.text()).toBe('Connexion')
})
})
Run Code Online (Sandbox Code Playgroud)
Login.vue
<b-row align-h="center">
<b-col class="text-center">
<h2>{{ $t('login.connection') }}</h2>
</b-col>
</b-row>
Run Code Online (Sandbox Code Playgroud)
测试似乎一切正常。但是我发现了这些缺陷,并且可以找到一种方法来进行实际修复。
[Vue警告]:未知的自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“名称”选项。
[Vue警告]:未知的自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“名称”选项。
因此,我环顾四周,似乎需要将这些子组件添加到父亲中。
这是这些组件的文档。
我还添加了我的配置文件(与vue-cli 3生成的文件相同)
jest.congif.js
module.exports = {
moduleFileExtensions: [
'js',
'jsx',
'json',
'vue'
],
transform: …Run Code Online (Sandbox Code Playgroud) 我在数据中有一个 bootstrap-vue 表(b-table),我想让它的 'Id' 值可以在以后的事件中访问,但我想从表渲染中隐藏它。
我以为我看到了一种通过将“Id”绑定到 row.key 或 row.index 或一些此类 b 表属性来实现此目的的方法,但我在任何地方都找不到。
所以我在字段定义中包含了列值,但我无法找到隐藏列的方法。
该表如下所示:
<b-table show-empty responsive striped hover small outlined :stacked="stack"
:items="DisplayViewData"
:fields="fields"
:sort-by.sync="sortBy"
:sort-desc.sync="sortDesc">
<template slot="select" slot-scope="data">
<b-form-checkbox v-model="data.item.IsSelected"/>
</template>
</b-table>
Run Code Online (Sandbox Code Playgroud)
字段定义如下:
fields: Array<any> = [
{key: 'Id',},
{key: 'LastName', sortable: true},
{key: 'FirstName', sortable: true},
etc.....
];
Run Code Online (Sandbox Code Playgroud)
但这意味着呈现了 Id 列。
有没有办法通过使“Id”列不可见或将 data.Id 值分配给其他一些 b 表行数据上下文来执行我想要的操作?
算法:
data[1-5]someDataToShowInModal.问题:如何等到用户点击模态的 OK 或 CANCEL 按钮?
在代码中我展示了两种可能的解决方案,但不知道如何实现它们:
将模态包装到 Promise 中。
使用state.doSave并以某种方式等到它被更改myModalComponent。
如果用户单击“确定”,则应用更改。
下面是伪代码,显示了我尝试实现的逻辑:
状态.js
modalTextSummary = {}
Run Code Online (Sandbox Code Playgroud)
动作.js
async myAction ({ state }) {
let modalClosed
let someDataToShowInModal = {}
let data1 = []
let data2 = []
let data3 = []
let data4 = []
let data5 = []
// #1. Push difference to "data[1-5]"
data1.push(xyz1)
data2.push(xyz2)
data3.push(xyz3)
data4.push(xyz4)
data5.push(xyz5)
// #2. Based on data[1-5] prepare "someDataToShowInModal"
someDataToShowInModal …Run Code Online (Sandbox Code Playgroud) bootstrap-vue ×10
vue.js ×6
javascript ×5
vuejs2 ×5
bootstrap-4 ×2
typescript ×2
css ×1
import ×1
jestjs ×1
laravel ×1
laravel-mix ×1
npm ×1
vue-cli ×1
vuejs3 ×1
vuex ×1
webpack ×1