// какая-то проверка достаточная чтобы сказать, что у нас тут NextPageContext;
const isNextPageContext = (ctx: unknown): ctx is NextPageContext => false;
// аналогично для AppContext
const isAppContext = (ctx: unknown): ctx is AppContext => false;
const baseQuery = fetchBaseQuery({
baseUrl: 'http://localhost:7777/api/auth',
prepareHeaders: (headers, { extra }) => {
let req;
if (isNextPageContext(extra)) {
req = extra.req;
} else if (isAppContext(extra)) {
req = extra.ctx?.req;
}
if (req) {
headers.set('Cookie', req.headers.cookie || '');
}
return headers;
},
credentials: 'include',
});
interface CreateConnectionOptions extends ConnectOptions {
retryCount?: number;
retryDelay?: number;
}
function createConnection(uri: string, {
retryCount = 6,
retryDelay = 1000,
...mongooseConnectOptions
}: CreateConnectionOptions = {}): Observable<Connection> {
let connection$ = defer(() => mongoose.createConnection(uri, mongooseConnectOptions).asPromise());
if (retryCount > 0) {
connection$ = connection$.pipe(retry({
count: retryCount,
delay: retryDelay
}));
}
return connection$.pipe(shareReplay(1));
}
receivedData
может быть фиксированное количество записей фиксированных размеров, то условно как-то так:<div v-if="loading">
<div v-for="foo in 10" class="fixed-size loading"></div>
Loading
</div>
<div v-else>
<div v-for="foo in receivedData.foo" class="fixed-size">{{ foo }}</div>
{{ receivedData.bar }}
</div>
const obj = { ... };
type Obj = typeof obj;
const products = {
value: false
};
console.log(products)
console.log(products.value)
products.value = true;
ref
в данном случае никакой.ref.value
ты уже получил текущее значение, если оно изменилось позже, то ты об этом никак не узнаешь, не поучив снова ref.value
. Собсно потому и нужно это уродское .value
, т.к. в js (пока?) нет нативных ref-ссылок приходится везде тащить объект-обёртку. <compnent-group-name>.variables.scss
и импортируете его куда надо. props
. Каждый отдельный компонент - чёрный ящик. У тебя должна быть возможность полностью и кардинально изменить вёрстку внутри компонента, не изменив его поведение. В vue 3 для этого даже есть удобная конструкция v-bind
внутри <style>
.$gap
глобальный параметр, можно в конфиге vue\sass-loader добавить общий для всех файл с переменными. view
кроме labled
? Props
, можно предположить, что это какие-то props какого-то React компонента, тогда этого можно добиться с помощью перегрузки:export interface ModalProps extends CuiModalProps {
children: ReactElement | ReactElement[]
setterClosePopup: Dispatch<SetStateAction<boolean>>
namePopup?: string
isOpen?: boolean
withBorder?: boolean
className?: string
}
export interface ModalPropsLabled extends ModalProps {
view: 'labeled'
label: string
}
export const Component: ((pros: ModalProps) => ReactNode) & ((pros: ModalPropsLabled) => ReactNode) = (pros: ModalProps | ModalPropsLabled) => { ... }