主頁 > 軟體工程 > ReactRouterDom問題-localhost:3000/products到localhost:3000/products/2作業正常,但是當我重繪頁面時,我在控制臺中收到一些錯誤

ReactRouterDom問題-localhost:3000/products到localhost:3000/products/2作業正常,但是當我重繪頁面時,我在控制臺中收到一些錯誤

2022-03-17 06:44:24 軟體工程

我有一個 Index.js,我通過異步函式獲取資料并將資料發送到 ProductList 組件,然后從 ProductList 組件發送一個產品影像的 id onclick,然后我得到一個產品詳細資訊頁面。我得到沒有問題的單一產品,但是當我重繪 時,我在控制臺中收到錯誤訊息 -無法讀取未定義的屬性(讀取“過濾器”)我使用了 REDUX。

索引.JS

import React, { useState, useEffect } from "react";
// import PageNotFound from "../other/page-not-found/PageNotFound";
import ProductList from "./product-list/ProductList";
import ProductFilter from "./product-filter/ProductFilter";
import ProductSearch from "./product-search/ProductSearch";
import Cart from "./cart/Cart";
// import MobileFilterModal from "./mobile-filter-modal/MobileFilterModal";
import { useDispatch, useSelector } from "react-redux";
import { setProductListData } from "../../redux/actions/product-list-actions/ProductListActions";
import Loading from "../other/loading/Loading";
import Skeleton from "../other/skeletons/Skeleton";
// import PageNotFound from "../other/page-not-found/PageNotFound";

const Index = () => {
  const [isLoading, setIsLoading] = useState(true);
  const dispatch = useDispatch();
  const filters = useSelector(
    (state) => state.productList.productListData.filters
  );
  const products = useSelector(
    (state) => state.productList.productListData.products
  );
  // console.log(products);

  useEffect(() => {
    getProductsData();
  }, []);

  const getProductsData = async () => {
    try {
      const response = await fetch("http://localhost:8000/productListing");
      const data = await response.json();
      if (data) {
        setIsLoading(false);
        dispatch(setProductListData(data));
      } else {
        setIsLoading(true);
      }
    } catch (error) {
      console.log(error);
    }
  };

  // if (isLoading) {
  //   return <Loading loadingProductList={"products"} />;
  // }

  return (
    <>
      {filters && products && (
        <main>
          <div className="dvMain">
            <div className="container-fluid">
              <div className="row">
                <div className="dvFilters col-lg-3 col-xl-2 d-none d-lg-block text-right">
                  <div className="sticky-top" style={{ top: "90px" }}>
                    {isLoading
                      ? filters.map((filter) => {
                          return (
                            <Skeleton key={filter.id} filterId={filter.id} />
                          );
                        })
                      : filters &&
                        filters.map((filter) => {
                          return <ProductFilter key={filter.id} {...filter} />;
                        })}
                  </div>
                </div>
                <div className="dvProducts col-lg-6 col-xl-8">
                  <div className="row">
                    <div className="dvSearch col-sm-9 col-md-10 col-lg-12 mb-3">
                      {isLoading ? (
                        <Skeleton productSearch={"productSearch"} />
                      ) : (
                        <ProductSearch />
                      )}
                    </div>
                    <div className="dvFilterMobile col-sm-3 col-md-2 d-lg-none text-center text-sm-right mb-3">
                      <a
                        href=""
                        className="btn bg-light w-100"
                        data-toggle="modal"
                        data-target="#mobileFiltersModal"
                      >
                        <i className="fa fa-filter"></i>Filter
                      </a>
                    </div>
                  </div>
                  <div className="row">
                    {isLoading
                      ? products.map((product) => {
                          return (
                            <Skeleton key={product.id} productId={product.id} />
                          );
                        })
                      : products &&
                        products.map((product) => {
                          return <ProductList key={product.id} {...product} />;
                        })}
                  </div>
                </div>
                {isLoading ? <Skeleton cart={"cart"} /> : <Cart />}
              </div>
            </div>
          </div>
        </main>
      )}
    </>
  );
};

export default Index;

產品串列.JS

import React from "react";
import { Link } from "react-router-dom";
import "./productlist.css";

const ProductList = ({ id, img, pack, price, size, heading, description }) => {
  // console.log(id, img, pack, price, size, heading, description);
  // console.log(id, img, pack, price, size, heading, description);

  return (
    <>
      <div className="col-6 col-md-4 col-lg-6 col-xl-3 mb-4">
        <div className="border border-light shadow-sm p-1 h-100">
          <div className="image">
            <p className="packs">pack of 5</p>
            <div className="bg-light text-center pt-2 pb-2 mb-1">
              <Link className="d-inline-block" to={`/${id}`}>
                <img src={img} className="img-fluid" alt={heading} />
              </Link>
            </div>
            <h5 className="heading-5 text-center">{heading}</h5>
          </div>
          <div className="description d-flex justify-content-between mb-1">
            <div className="paragraph">
              <p>{size}</p>
            </div>
            <div className="paragraph mr-2">
              <span>
                <i className="fa fa-inr"></i>
                <span>{price}</span>
              </span>
            </div>
          </div>
          <div className="addBtn text-center">
            <button className="btn btn-white w-100" href="detail.html">
              Add to Bag
            </button>
          </div>
        </div>
      </div>
    </>
  );
};

export default ProductList;

產品詳情.JS

import React, { useState, useEffect } from "react";
import Cart from "../cart/Cart";
import "./productdetail.css";
import Loading from "../../other/loading/Loading";
import PageNotFound from "../../other/page-not-found/PageNotFound";
import { Link, useParams } from "react-router-dom";
import { useDispatch, useSelector } from "react-redux";
import { setSelectedProduct } from "../../../redux/actions/product-detail-actions/ProductDetailActions";

const ProductDetail = () => {
  const [isLoading, setIsLoading] = useState(true);
  const { id } = useParams();
  const dispatch = useDispatch();
  const products = useSelector(
    (state) => state.productList.productListData.products
  );
  const singleProduct = useSelector(
    (state) => state.singleProduct.singleProduct
  );

  // console.log(id);
  // console.log(products);
  // console.log(singleProduct);

  useEffect(() => {
    getProductId();
  }, []);

  const getProductId = () => {
    window.scrollTo(0, 0);
    // localStorage.setItem("setProducts", JSON.stringify(products));
    // let getProducts = JSON.parse(localStorage.getItem("setProducts"));
    products ? setIsLoading(false) : setIsLoading(true);
    let singleProduct = [];
    singleProduct = products.filter((product) => {
      return product.id === parseInt(id);
    });
    // console.log(singleProduct);
    dispatch(setSelectedProduct(singleProduct));
  };

  if (isLoading) {
    return <Loading loadingProductDetail={"product detail"} />;
  }

  return (
    <>
      {singleProduct && (
        <main>
          <div className="dvMain">
            <div className="container">
              <div className="row">
                {singleProduct ? (
                  singleProduct.map((product) => {
                    const {
                      id,
                      img,
                      heading,
                      description,
                      category,
                      price,
                      size,
                    } = product;
                    return (
                      <div key={id} className="col-lg-9">
                        <div className="row">
                          <div className="dvProducts col-12">
                            <div className="row">
                              <div className="dvBack col-12">
                                <Link
                                  to="/products"
                                  className="mb-1 d-inline-block"
                                >
                                  <i className="fa fa-angle-left"></i>
                                  <span> Back</span>
                                </Link>
                              </div>
                              <div className="col-12">
                                <div className="row">
                                  <div className="col-12 col-md-6 col-xl-4 mb-3">
                                    <div className="border border-light shadow-sm p-1 h-100 d-flex justify-content-center align-items-center">
                                      <div className="bg-light text-center h-100">
                                        <a className="d-inline-block h-100">
                                          <img
                                            src={img}
                                            className="img-fluid"
                                            alt={heading}
                                          />
                                        </a>
                                      </div>
                                    </div>
                                  </div>
                                  <div className="col-12 col-md-6 col-xl-8 d-flex mb-3 mb-xl-0">
                                    <div className="m-md-auto">
                                      <div>
                                        <h2 className="heading-2">{heading}</h2>
                                      </div>
                                      <div className="mb-2">
                                        <i className="fa fa-star text-warning d-inline-block"></i>
                                        <i className="fa fa-star text-warning d-inline-block"></i>
                                        <i className="fa fa-star text-warning d-inline-block"></i>
                                        <i className="fa fa-star-o text-warning d-inline-block"></i>
                                        <i className="fa fa-star-o text-warning d-inline-block"></i>
                                      </div>
                                      <div className="mb-3">
                                        <p className="paragraph">
                                          {description}
                                        </p>
                                      </div>
                                      <div className="d-flex mb-3">
                                        <div className="mr-2">
                                          <h5 className="heading-5 d-inline-block mb-1 mr-1">
                                            Size:
                                          </h5>
                                          <span className="paragraph d-inline-block">
                                            {size}
                                          </span>
                                        </div>
                                        <div className="mr-2 ml-2">
                                          <h5 className="heading-5 d-inline-block mb-1 mr-1">
                                            Category:
                                          </h5>
                                          <span className="paragraph d-inline-block">
                                            {category}
                                          </span>
                                        </div>
                                        <div className="ml-2">
                                          <h5 className="heading-5 d-inline-block mb-1 mr-1">
                                            Price:
                                          </h5>
                                          <span className="paragraph d-inline-block">
                                            <i className="fa fa-inr"></i>
                                            <span className="d-inline-block">
                                              {price}.00
                                            </span>
                                          </span>
                                        </div>
                                      </div>
                                      <div>
                                        <button
                                          className="btn btn-black"
                                          href="/-"
                                        >
                                          Add to Bag
                                        </button>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                          <div className="dvTabs col-12 mt-4">
                            <div className="row">
                              <div className="col-12">
                                <div className="row">
                                  <div className="col-12">
                                    <ul
                                      className="nav nav-tabs"
                                      id="myTab"
                                      role="tablist"
                                    >
                                      <li className="nav-item">
                                        <a
                                          className="heading-5 nav-link active"
                                          id="description-tab"
                                          data-toggle="tab"
                                          href="#description"
                                          role="tab"
                                          aria-controls="description"
                                          aria-selected="true"
                                        >
                                          Description
                                        </a>
                                      </li>
                                    </ul>
                                  </div>
                                </div>
                                <div
                                  className="dvTabsContent tab-content row"
                                  id="myTabContent"
                                >
                                  <div
                                    className="tab-pane fade show active py-3 col-12"
                                    id="description"
                                    role="tabpanel"
                                    aria-labelledby="description-tab"
                                  >
                                    <div className="row">
                                      <div className="col-12">
                                        <div className="table-responsive">
                                          <table className="table table-striped table-bordered">
                                            <thead>
                                              <tr>
                                                <th
                                                  className="heading-5"
                                                  scope="col"
                                                >
                                                  Details
                                                </th>
                                                <th
                                                  className="heading-5"
                                                  scope="col"
                                                >
                                                  Weight
                                                </th>
                                                <th
                                                  className="heading-5"
                                                  scope="col"
                                                >
                                                  1Glass 250ml
                                                </th>
                                              </tr>
                                            </thead>
                                            <tbody>
                                              <tr>
                                                <td>Amount per serving</td>
                                                <td>250ml</td>
                                                <td></td>
                                              </tr>
                                            </tbody>
                                          </table>
                                        </div>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    );
                  })
                ) : (
                  <PageNotFound />
                )}
                <Cart id={id} />
              </div>
            </div>
          </div>
        </main>
      )}
    </>
  );
};

export default ProductDetail;

APP.JS

import React from "react";
import "./App.css";
import { BrowserRouter, Switch, Route } from "react-router-dom";
import Homepage from "./containers/home-page/index";
import Header from "./containers/header/Header";
import Footer from "./containers/footer/Footer";
// import ProductListing from "./containers/products/product-list/ProductList";
import ProductDetail from "./containers/products/product-detail/ProductDetail";
import PageNotFound from "./containers/other/page-not-found/PageNotFound";
import Account from "./containers/account/index";
import Checkout from "./containers/checkout/Index";
import LoginModal from "./containers/auth/modal/login-modal/LoginModal";
import SignupModal from "./containers/auth/modal/signup-modal/SignupModal";
import MobileCartModal from "./containers/products/mobile-cart-modal/MobileCartModal";
import Index from "./containers/products";

const App = () => {
  return (
    <>
      <BrowserRouter>
        <Header />
        <main>
          <Switch>
            <Route path="/" exact component={Homepage} />
            <Route path="/products" component={Index} />
            <Route path="/:id" children={<ProductDetail />} />
            <Route path="/checkout" component={Checkout} />
            <Route path="/account" component={Account} />
            <Route path="*" component={PageNotFound} />
          </Switch>
        </main>
        <Footer />
        <LoginModal />
        <SignupModal />
        <MobileCartModal />
      </BrowserRouter>
    </>
  );
};

export default App;

產品詳情.JS

export const setSelectedProduct = (product) => {
  return {
    type: "SET_SELECTED_PRODUCT",
    payload: product,
  };
};

PRODUCTDETAILREDUCER.JS

const initialState = {
  singleProduct: [],
};

export const productDetailReducer = (state = initialState, action) => {
  switch (action.type) {
    case "SET_SELECTED_PRODUCT":
      return {
        ...state,
        singleProduct: action.payload,
      };
    default:
      return state;
  }
};

減速器索引.JS

import { combineReducers } from "redux";
import { aboutUsReducer } from "./aboutus-reducers/AboutUsReducers";
import { footerReducer } from "./footer-reducers/FooterReducer";
import { headerReducer } from "./header-reducers/headerReducer";
import { mainSliderReducer } from "./homepage-reducers/mainSliderReducer";
import { youtubeReducer } from "./homepage-reducers/YoutubeReducer";
import { productDetailReducer } from "./product-detail/ProductDetailReducer";
import { productListReducer } from "./product-list-reducers/ProductListReducer";
import { productSliderData } from "./productslider-reducers/ProductSliderReducer";
import { teamReducer } from "./team-reducers/TeamReducers";

const rootReducer = combineReducers({
  header: headerReducer,
  mainSlider: mainSliderReducer,
  youtube: youtubeReducer,
  aboutUs: aboutUsReducer,
  productSlider: productSliderData,
  team: teamReducer,
  footer: footerReducer,
  productList: productListReducer,
  singleProduct: productDetailReducer,
});

export default rootReducer;

商店.JS

import { createStore } from "redux";
import rootReducer from "./reducers/index";

const store = createStore(
  rootReducer,
  {},
  window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);

export default store;

產品串列.JS

export const setProductListData = (data) => {
  return {
    type: "SET_PRODUCT_LIST_DATA",
    payload: data,
  };
};

產品串列減速器.JS

const initialState = {
  productListData: {},
};

export const productListReducer = (state = initialState, action) => {
  switch (action.type) {
    case "SET_PRODUCT_LIST_DATA":
      return {
        ...state,
        productListData: action.payload,
      };
    default:
      return state;
  }
};

DB.JSON 我正在從看起來像這樣的 json 檔案中獲取 productListing React Router Dom 問題 - localhost:3000/products 到 localhost:3000/products/2 作業正常,但是當我重繪 頁面時,我在控制臺中收到一些錯誤

uj5u.com熱心網友回復:

據我所見,該組件缺少對路由引數ProductDetails的依賴以選擇要過濾的正確產品,并且我假設由于索引檔案在每次掛載時都會獲取并填充存盤,因此初始產品狀態可能是null、undefined 或其他缺少該方法的非陣列值。idfilter

將缺少的id路由引數添加到useEffect鉤子的依賴陣列中,以便在路由更改時獲取產品。

const { id } = useParams();

...

useEffect(() => {
  getProductId(id);
}, [id]);

由于它看起來可能products是未定義的,即錯誤的,因此在嘗試過濾陣列時應該考慮到那時。提供一個備用空陣列以過濾是否products為假。

const getProductId = (id) => {
  window.scrollTo(0, 0);
  products ? setIsLoading(false) : setIsLoading(true);

  const singleProduct = (products || []).filter((product) => {
    return product.id === parseInt(id);
  });

  dispatch(setSelectedProduct(singleProduct));
};

您沒有包含任何 Redux 代碼(即操作/reducers/store 配置),但建議始終提供一致的狀態不變數。例如,總是回傳一個陣列,products并使用陣列長度和一些“isLoading”狀態來確定何時可以安全地過濾狀態。至少,如果保證products始終一個陣列,那么所有陣列方法將始終按預期作業,無論應用程式處于其生命周期中的哪個位置并加載資料/狀態。

uj5u.com熱心網友回復:

嘿,我找到了這個解決方案。我通過異步函式獲取產品,而不是從 useSelector 獲取產品。請檢查下面的 ProductDetail 組件。

產品詳情.JS

import React, { useState, useEffect } from "react";
import Cart from "../cart/Cart";
import "./productdetail.css";
import Loading from "../../other/loading/Loading";
import PageNotFound from "../../other/page-not-found/PageNotFound";
import { Link, useParams } from "react-router-dom";
import { useDispatch, useSelector } from "react-redux";
import { setSelectedProduct } from "../../../redux/actions/product-detail-actions/ProductDetailActions";

const ProductDetail = () => {
  const [loading, setLoading] = useState(true);
  const { id } = useParams();
  const dispatch = useDispatch();
  const singleProduct = useSelector(
    (state) => state.singleProduct.singleProduct
  );

  useEffect(() => {
    getProductListingData();
  }, []);

  const getProductListingData = async () => {
    try {
      const response = await fetch("http://localhost:8000/productListing");
      const data = await response.json();
      if (data) {
        setLoading(false);
        getProductID(data.products);
      } else {
        // setProducts("PRODUCT LISTING DATA NOT FOUND");
        setLoading(true);
        console.log("PRODUCT LISTING DATA NOT FOUND");
      }
    } catch (error) {
      console.log(error);
    }
  };

  const getProductID = (products) => {
    window.scroll(0, 0);
    let singleProduct = [];
    singleProduct = products.filter((item) => {
      return item.id === parseInt(id);
    });
    dispatch(setSelectedProduct(singleProduct));
  };

  if (loading) {
    return <Loading loadingProductDetail="Loading Product Details" />;
  }

  console.log(id);
  console.log(singleProduct);

  return (
    <>
      <main>
        <div className="dvMain">
          <div className="container">
            <div className="row">
              {singleProduct.length > 0 &&
                singleProduct.map((product) => {
                  const {
                    id,
                    img,
                    heading,
                    description,
                    pack,
                    price,
                    size,
                    category,
                    detailsTable,
                  } = product;
                  return (
                    <div key={id} className="col-lg-9">
                      <div className="row">
                        <div key={id} className="dvProducts col-12">
                          <div className="row">
                            <div className="dvBack col-12">
                              <Link
                                to="/products"
                                className="mb-1 d-inline-block"
                              >
                                <i className="fa fa-angle-left"></i>
                                <span> Back</span>
                              </Link>
                            </div>
                            <div className="col-12">
                              <div className="row">
                                <div className="col-12 col-md-6 col-xl-4 mb-3">
                                  <div className="border border-light shadow-sm p-1 h-100 d-flex justify-content-center align-items-center">
                                    <div className="bg-light text-center h-100">
                                      <a className="d-inline-block h-100">
                                        <img
                                          src={img}
                                          className="img-fluid"
                                          alt={heading}
                                        />
                                      </a>
                                    </div>
                                  </div>
                                </div>
                                <div className="col-12 col-md-6 col-xl-8 d-flex mb-3 mb-xl-0">
                                  <div className="m-md-auto">
                                    <div>
                                      <h2 className="heading-2">{heading}</h2>
                                    </div>
                                    <div className="mb-2">
                                      <i className="fa fa-star text-warning d-inline-block"></i>
                                      <i className="fa fa-star text-warning d-inline-block"></i>
                                      <i className="fa fa-star text-warning d-inline-block"></i>
                                      <i className="fa fa-star-o text-warning d-inline-block"></i>
                                      <i className="fa fa-star-o text-warning d-inline-block"></i>
                                    </div>
                                    <div className="mb-3">
                                      <p className="paragraph">{description}</p>
                                    </div>
                                    <div className="d-flex mb-3">
                                      <div className="mr-2">
                                        <h5 className="heading-5 d-inline-block mb-1 mr-1">
                                          Pack:
                                        </h5>
                                        <span className="paragraph d-inline-block">
                                          {pack}
                                        </span>
                                      </div>
                                      <div className="mr-2">
                                        <h5 className="heading-5 d-inline-block mb-1 mr-1">
                                          Size:
                                        </h5>
                                        <span className="paragraph d-inline-block">
                                          {size}
                                        </span>
                                      </div>
                                      <div className="mr-2 ml-2">
                                        <h5 className="heading-5 d-inline-block mb-1 mr-1">
                                          Category:
                                        </h5>
                                        <span className="paragraph d-inline-block">
                                          {category}
                                        </span>
                                      </div>
                                      <div className="ml-2">
                                        <h5 className="heading-5 d-inline-block mb-1 mr-1">
                                          Price:
                                        </h5>
                                        <span className="paragraph d-inline-block">
                                          <i className="fa fa-inr"></i>
                                          <span className="d-inline-block">
                                            {price}.00
                                          </span>
                                        </span>
                                      </div>
                                    </div>
                                    <div>
                                      <button
                                        className="btn btn-black"
                                        href="/-"
                                      >
                                        Add to Bag
                                      </button>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                        <div className="dvTabs col-12 mt-4">
                          <div className="row">
                            <div className="col-12">
                              <div className="row">
                                <div className="col-12">
                                  <ul
                                    className="nav nav-tabs"
                                    id="myTab"
                                    role="tablist"
                                  >
                                    <li className="nav-item">
                                      <a
                                        className="heading-5 nav-link active"
                                        id="description-tab"
                                        data-toggle="tab"
                                        href="#description"
                                        role="tab"
                                        aria-controls="description"
                                        aria-selected="true"
                                      >
                                        Description
                                      </a>
                                    </li>
                                  </ul>
                                </div>
                              </div>
                              <div
                                className="dvTabsContent tab-content row"
                                id="myTabContent"
                              >
                                <div
                                  className="tab-pane fade show active py-3 col-12"
                                  id="description"
                                  role="tabpanel"
                                  aria-labelledby="description-tab"
                                >
                                  <div className="row">
                                    <div className="col-12">
                                      <div className="table-responsive">
                                        <table className="table table-striped table-bordered">
                                          <thead>
                                            <tr>
                                              <th
                                                className="heading-5"
                                                scope="col"
                                              >
                                                Details
                                              </th>
                                              <th
                                                className="heading-5"
                                                scope="col"
                                              >
                                                Weight
                                              </th>
                                              <th
                                                className="heading-5"
                                                scope="col"
                                              >
                                                1Glass 250ml
                                              </th>
                                            </tr>
                                          </thead>
                                          <tbody>
                                            <tr>
                                              <td>Amount per serving</td>
                                              <td>250ml</td>
                                              <td></td>
                                            </tr>
                                          </tbody>
                                        </table>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  );
                })}
              <Cart id={id} />
            </div>
          </div>
        </div>
      </main>
    </>
  );
};

export default ProductDetail;

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/445330.html

標籤:反应 网址 反应还原 反应路由器dom

上一篇:當我最后不使用斜杠時,為什么URL重寫不起作用?

下一篇:當文本長度接近寬度時,使用scrollWidth檢測到錯誤的省略號

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more