ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
+130 kunlar
Postlar arxiv
1 419
# ืงืจืืื ืืืืจืืช ืืคืื ืงืฆืื groupBy ื lodash
ืืงืจืื ืงืื ืฉื ืืืจืื ืื ืืจื ืืืื ืืงืื ืจืขืืื ืืช, ืืืืื Best Practices ืืื ืืจืืืช ืฉืืืืืช ืฉืืืจืื ืขืืฉืื ืืื ืืืจืืืฉ ืงืฆืช ืคืืืช ืจืข ืขื ืืฉืืืืืช ืฉืื ื - ืืืืื ืขื ืืืืืื ืงื ืืงืจืื ืืคืืื ืืืืืคืื. ืืืื ื ื ืกื ืืื ืืงืจืื ืืช ืืงืื ืฉื groupBy ืืกืคืจืืืช ื JavaScript ืืคืืคืืืจืืช lodash ืื ืจืื ืื ื ืืื ืืืืื ืืื ื.
## ื ืงืืืช ืืืชืืื - ืืงืืืฅ groupBy
ืืื ืืกื ืืืืืจ ืฉื lodash ืื ืื ื ืฉืืื ืื ืงืืื ืื ืฉืืกืคืจืื ืืืืืงืช ืืงืืฆืื ืืื ืคืื ืงืฆืื ื ืืฆืืช ืืงืืืฅ ืืฉืื. ืืงืืืฅ package.json ืืกืคืจ ืื ื ืฉืืงืืืฅ ืืจืืฉื ืืกืคืจืื ื ืงืจื lodash.js:
{
"name": "lodash",
"version": "5.0.0",
"license": "MIT",
"private": true,
"main": "lodash.js",
"engines": {
"node": ">=4.0.0"
},
"sideEffects": false,
"scripts": {
"style": "eslint *.js .internal/**/*.js",
"test": "mocha -r esm test/*.test.js",
"validate": "npm run style && npm run test"
},
"devDependencies": {
"mocha": "^5.2.0",
"eslint": "^7.16.0",
"eslint-plugin-import": "^2.22.1",
"lodash": "4.17.20",
"esm": "^3.2.25"
}
}
ืืื ืืืืคืืฉ ืืชืืงืืืช ืืคืจืืืงื ืื ืื ื ืืืืื ืฉ lodash.js ืืื ื ืืืง ืืงืื ืืืงืืจ. ื Readme ืืกืคืจืื ืื ื ืฉืืื ืืื ืืช ืืช lodash.js ื ืฆืืจื ืืืชืงืื ืกืคืจืื ืืืจืช ืฉื ืงืจืืช lodash-cli. ืืืื ืืืื ืืืจ ืืืื ืืขื ืืื ืืืืื ืก ืืืงืจืื ืืช ืืงืื ืฉื lodash-cli ืืืืืื ืืื ืืื ืืืืฆืจืช ืืช ืืงืืืฅ ืืจืืฉื. ืืจืืข ืื ื ืจืืฆื ืืืชืืงื ืืคืื ืงืฆืื groupBy. ืืืืจ ืืืฉ ืืชืืงืื ืงืืืฅ ืฉืืชืืื ืืื ืคืื ืงืฆืื ืฉื lodash ืื ื ืืืคืฉ ืืช ืืงืืืฅ ืฉื ืงืจื groupBy.js:
import baseAssignValue from './.internal/baseAssignValue.js'
import reduce from './reduce.js'
/** Used to check objects for own properties. */
const hasOwnProperty = Object.prototype.hasOwnProperty
/**
* Creates an object composed of keys generated from the results of running
* each element of `collection` thru `iteratee`. The order of grouped values
* is determined by the order they occur in `collection`. The corresponding
* value of each key is an array of elements responsible for generating the
* key. The iteratee is invoked with one argument: (value).
*
* @since 0.1.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
* @param {Function} iteratee The iteratee to transform keys.
* @returns {Object} Returns the composed aggregate object.
* @example
*
* groupBy([6.1, 4.2, 6.3], Math.floor)
* // => { '4': [4.2], '6': [6.1, 6.3] }
*/
function groupBy(collection, iteratee) {
return reduce(collection, (result, value, key) => {
key = iteratee(value)
if (hasOwnProperty.call(result, key)) {
result[key].push(value)
} else {
baseAssignValue(result, key, [value])
}
return result
}, {})
}
export default groupBy
## ืื ืืคืฉืจ ืืืืื ืืืืขืจืืช
ืืงืืืฅ ืืืื ืืกื ืืื ืฉื ื ืืืืงืื ืืจืืืืื ืฉื ืืขืจืืช: ืืืืืง ืืืืื ืืื ื jsdoc ืฉืืื ื ืืืืฆืจ ืืฃ ืืชืืขืื ืฉื ืืคืื ืงืฆืื. ืืืฅ ืืื ื ืืฉ ืจืง ืืขืจื ืืืืืช ืืืช ืืื:
/** Used to check objects for own properties. */
const hasOwnProperty = Object.prototype.hasOwnProperty
ืืื ืืฉืืจื ืืืืช ื ืจืืืช ืชืืืื- ืืจื ืื ืื ื ืืืืขืื ืื Object.prototype.hasOwnProperty ืขืืฉื ื JavaScript. ืืื ืื ื ืืคืฉ ืืขืื ืงืืฆืื ืืกืคืจืื ื ืืื ืฉืื ืคืขื ืฉืืืืืจ const ืืืืืืื ืืงืืืฅ ืืฉ ืืขืืื ืืขืจื ืฉืืกืืืจื ืื ืชืคืงืืื. ืืืืืื ืืงืืืฅ clone.js ืื ืื ื ืืืฆืืื ืืช:
/** Used to compose bitmasks for cloning. */
const CLONE_SYMBOLS_FLAG = 4
ืื conforms.js ืื ื ืืืฆื ืืช:
/** Used to compose bitmasks for cloning. */
const CLONE_DEEP_FLAG = 1
ืื isArrayBuffer.js ืืฉ ืื ืืช:
/* Node.js helper references. */
const nodeIsArrayBuffer = nodeTypes && nodeTypes.isArrayBuffer
ืืงืืฆืืจ ืื ื ืจืื ืืื Best Practice ืฉืืืืจ ืืขืืืจ ืื ื ืืืชืืฆื ืืงืื. ืื ื ืื ืืืื ืืื ืืื ืืคืงืืืื ืืื ืืคืืืช ืื ืขืงืืืื.
## ืฉืืืืช ืืงืจืืืช ืืืืืืฉ
ื ืืฉืื ืืืืืืฉ ืขืฆืื ืืืื ืื ืื ื ืืืฆื ืฉืืจื ืงืฆืช ืืคืชืืขื:
function groupBy(collection, iteratee) {
return reduce(collection, (result, value, key) => {
key = iteratee(value)1 419
# ืฉืืืืช ืืื ืชืฉืืืืช
ืืฉืื ืื ื ื ืชืงืืื ืืืืืข ืืืฉ ืื ืืคืืื ืขืืืืื ืขื ื ืืฉืืื ืฉืื ืื ื ืืืืจืื ืืืื ืื ืืืื ืืขืื ืฉืืืืช.
ืืจืฆืื ืืกืื ืื ืืฉื ืื ืฉื ืืืช ืกืคืจ ืืืืื ืืืชื ื ืฉืืชืฉืืื ืื ืื ืฉืืฉืื. ืฉืืฉืืืืช ืืืืืืืช ืฉืืขื ืืื ืืช ืื ืืื ืฉืืฉ ืืื ืชืฉืืื ืืฉืื ืฉืฆืจืื ืืฉืืืจ ืืจืืฉ ืื "ืืืขืช" ืืืช ืืชืฉืืื. ืืฉืืื ืืื ืจืง ืืจื ืืืืื ืฉืืื ืช, ืจืง ืืจื ืืจืืืช ืฉืืืืช ืงืืืืช ืืช ืืชืฉืืื.
ืืืืื ืืืืชื, ืืชืืจ ืืจื ืืืื, ืืืจืฉ ืืืืืง ืืช ืืืืคื. ืืื ืืขื "ืืืกืืฃ" ืชืฉืืืืช. ืืืงืื ืื ืขืืืฃ ืืฉืืง ืขื ืืฉืืืืช ืืืืฆืื ืขืื ืืจืืื ืืืืืข ืืชืฉืืืืช. ืืจืืข ืฉืืฆืืช ืืช ืืชืฉืืื ืืคืฉืจ ืืืจืืง ืืืชื ืืืืืฉืื ืืฉืืื ืืืื. ืืืืื ืืืืื ืืฉืืืืช ืฉืืื ืขืืืื ืชืฉืืื ืืืืฉืืง ืฉืื ื ืืื ืืืืืจ ืืืืื ืืืืื ืืืืช ืืืื.
ืืืืืจื ืืืงืฆืืขืืช - ืืฉืืืขืื ืืจืืืื ืขืืืื ืืจืื ืืช ืืกืืื ืืืฉืืื ืฉืื ืืฉืืื, ืืืชืงืื ืฆืขื ืืืจื ืฆืขื ืืคืืชืจืื, ืื ืื ืืกืืฃ ืืื ืื ืืืืข ืืชืฉืืื ืื ืืจืื ืคืขืืื ืืกืคืืง ืืื. ืืขืืืช ืืืช ืืฉืืืขืื ืืืจืง ืืช ืืชืฉืืื ืื ืืื ื ืคืฉืื ืื ืืื ืืืืจ ืืช ืืฉืืื ืืจืืฉ, ืื ืืืื ืืืชื ื ืืจืื ืคืืืช ืขื ืืืชื ืืืขืื. ืืืจืื ืจืืืื ืืช ืื ืื ื ืืืืงื ืืืคืฉืื ืืฉืืื ืฉืืืืช ืฉืืืืขืื ืื ืืืืจ, ืื ืื ืฉืืขื ืืื ืืืชื ื ืื ืืืืคืืฉ.
ืืืืืคืืฉ ืื ืืืจืฉ ืฉืชืืื ืชืฉืืื ืืกืืฃ.
1 419
# ืืื ืื ืืืคืื ื ืืื ืืฉืื ืืชืืื?
ืืื ืื ืืืคืื ื ืืื ืืฉืื ืจืง ืืชืืื? ื ื ืื ืืจืืจ-
- ืืืชืืื ืื ืื ื ืจืื ืืื ืืื ืืื
- ืืื ื ืืื ืฉืชืืื ืืคืฉืจ ืืฉื ืืช ืืขืชืื
- ืจืฆืื ื ืืขืืืช ืืืืืืจ
- ืจืฆืื ื ืืืชืงืื ืืคืืฆ'ืจืื ืืืชืจ ืืฉืืืื
- ืื ืื ืืื ืฉืืื ืืช ืืืืืฅ
ืืขืืฉืื? ืขืืฉืื ืืืืืจ ืืื: ืืฉ ืืืจ ืืงืืืืช ืฉืืืืจืื ืืช ืืชืืืช ื IP ืฉืื ื ืืืกืชืืืื ืขืืื; ืื ืชืื ืื ื DB ืืืจ ืฉืืืจืื ืืฆืืจื ืืกืืืืช ืืืฉ ืืืชืจ ืืื ืฉืืจืืช ืืฉืืื ืืืชืืื ืืืขืชืืง ืืืืื ืืืฉื; ืืงืื ืืืจ ืืืขืชืง ืืจืืื ืืืขืจืืช; ืืฉ ืืืชืจ ืืื ืคืืฆ'ืจืื ืืื ืืจืืจ ืืืคื ืืชืืืืื ืืืชืื ืืืืงืืช.
ืฉืืื ืืืืืจ ืฉืื ืืฉืื ืืจืืืฉ ืืืืืจ ืืืื ืืชืงื, ืฉืืืข ืืื ืืืื ืืคืืื ืืืชืจ ืืจืืข. ืื ืื ืืฉื ื ืืื ืื ืืืคืื ื ืืื ืืฉืื ืจืง ืืชืืื, ืืืืจ ืืืฉืื ืืื ืืคืชืืจ ืืช ืื ืขืืฉืื.
1 419
# ืืฉืืงืื ืขื Deta
ืื, ืื ืื ืฉืืืืช ืืชืื ืืืืชืจืช - ืืื ืืฉ ืืขืจืืช ืขื ื ืืื ืืืช ืืืืจื ืืฉื deta ืฉืืืืืช ืื ืืกืืก ื ืชืื ืื ืืื ืืคืฉืจืืช ืืืชืื ืงืื ืืื ื Python ืื Node.JS. ืืืืชื ืืฉืืง ืขื ื API ืฉืืื ืืื ืืจืืืช ืื ืืคืฉืจ ืืงืื ืืื ืืฉืื.
## ืื ืืงืืคืกื
ืืกืืืื ืืืืจ:
> Deta is a free cloud crafted with the developer and user experience at heart.
ืืื ืกืื-ืฉื ื ืืื. ืืงื ืื ืฉืชื ืืงืืช ืืืงืื ืืฉืืื ืืขืื 5 ืืงืืช ืืงืื ืืชืจ ืืื ืืืืืืจ. ืืฉืืื ืืืชืืื ืืขืืื ืื ืื ื ืืชืงืื ืื ืืช ื CLI Client ืฉืืื (ืืืจืืืช ืืืชืจ), ืืคืขืืืื ืืฉืืจืช ืืคืงืืื
deta login ืืื ืืืืืื ืืืคืก ืืืืืฆืื ืขื ืงืืฉืืจ ืืืืื ืฉื ืฉืื ืืืืื.
ืืืฅ ืืืืงืื ืืขืจืืช ืืื ืืคืืืชืื (ืขื ืคืืืกืง) ืื ืื ืชืืืืื ื:
1. ืืืืืจ ืืืืืื ืฉืืื ืืืขืจืืช.
2. ืืคืขืืช ืืฉืืืืช ืืชืืืื ืืช ืขื cron.
3. ืืืกืื ืงืืฆืื ืขื ืืขืจืืช ืฉื ืงืจืืช Data Drive (ืขื 10 ื'ืืื).
4. ืืืกืื ื ืชืื ืื ืขื ืืขืจืืช ืฉื ืงืจืืช Deta Base.
ืืืืกืจืื ืืืืื ืฉืืฆืืชื ืืื ืฉืื ืืคืฉืจ ืืืืืง ืคืจืืืงื. ืื ืืฆืืืชื ืืืืื ืืื. ืืื ืื ืืฆืืชื ืืชืืืกืืช ื Rate Limits ืื ืืืจืื ืืืื.
## ืืชืืื ืืช ืืจืืฉืื ื ืฉืืชืืชื
ืืฉืืื ืืืฉืืง ืืชืืชื ืฉื ืชืืื ืืช ืคืืืชืื ืฉืกืืคืจืช ืืื ืืงืฉืืช POST ืฉืืืชื ืืืื ืืฉืืืจืช ืืช ืืชืืฆืื ืืืกืืก ื ืชืื ืื. ืื ืืงืื:
from flask import Flask
from deta import Deta
deta = Deta()
counters = deta.Base('counters')
app = Flask(__name__)
@app.route('/', methods=["GET"])
def get_root():
record = counters.get('posts') or { "count": 0 }
return f"{record['count']} POST requests were sent so far"
@app.route('/', methods=["POST"])
def post_root():
try:
updates = {
"count": counters.util.increment(1)
}
counters.update(updates, "posts")
record = counters.get('posts')
return f"{record['count']} POST requests were sent so far"
except Exception as err:
# can only update existing records
try:
counters.put({ "key": "posts", "count": 1 })
record = counters.get('posts')
return f"{record['count']} POST requests were sent so far (including yours)"
except Exception as err:
return f"Error - {err}"
ืืืืงืื ืืืขื ืืื ืื ืืื ื ืืืขืชื:
1. ืชืืืื ืืืื ื flask, ืืื ืจืื ืืกืคืจืืืช ืคืืืชืื ืืืืคื ืืืื (ืืคืฉืจ ืืืชืื ืงืืืฅ requirements.txt ืืื ืืชืงืื ืื ืื ืื ืฉื ืืฆื ืื)
2. ืืกืืก ืื ืชืื ืื Deta Base ืืืืกืก ืจืฉืืืืช ืืืืืืจ ืืกืืกื ื ืชืื ืื NoSQL, ืืื ืืืืจืกื ืืืื ืืืื ืคืฉืืื ืฉืืื ืืขื API ืืกืืจืื. ืืคืื ืงืฆืื update ืืืืืื ืื ืืืืืจื ืืช ืืขืจื ืืืขืืืื ืื ืืฉืืื ืืงืื ืืืชื ืืืืชื ืฆืจืื ืืืคืขืื ืขืื ืืงืฉืช get, ืื ืฉืื ืืืื ืืืืืจ ืชืืฆืื ื ืืื ื (ืืืฉ ืขืื ืืื ืืืืื ืืืกืื ืืื ืืชืืื ืืช).
3. ืืคืฉืจ ืืืฉืชืืฉ ืจืง ืืืกืืก ืื ืชืื ืื, ืื ืจืง ื Web Framework, ืื ืจืง ืืืืกืื ืืงืืฆืื, ืื ืืืืื ืืื.
ืกื ืืื ืืงืื ืืืืกืื ืืืื ื ืืคืจืืืงืื ืืื ืื ืชืืื ืจืขืืื ืืื. ืืืืชื ืฉืื ืืืชืจ ืื ืื ืืื ื ืืชื ืื ืื ืืืื ื ืื ืงืืืกืืจ ืงืืืจื ืืืก, ืืื ืืฉืื ืืฉืืืื ืื ืืคืฉืจ ืืืชืืื ื. ืืืชืจ ืืืื ืืชืืื ืืคืจืืืงืื ืฆื ืฉืืื ืืฉืืืคืฉืื ืคืฉืื ืืขืืืช ืืืืืืจ ืืืื API ืืคืืืชืื ืื Node.JS ืืื ืืืชืขืกืง ืขื ืฉืจืชืื.1 419
# ืืื ืืฉื ืืช ืืืื ESLint ื create-react-app
ืืืชืืืช ืงืื ืืืืงื ืชืงืืคื ืืจืืื ืฉืื ื ืืขืืืฃ ืืืฉืชืืฉ ืืขืจื ืืืืืจ ืฉื render ืืืงืื ื screen ืืืืืืืื ืืขืช ืืชืืืช ืืืืืงืืช, ืืืืืจ ืื ื ืืขืืืฃ ืืช ืืืืจืกื ืืืืช:
import { render } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
const screen = render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).not.toBeInTheDocument();
});
ืขื ืคื ื:
import { screen, render } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).not.toBeInTheDocument();
});
ืืกืืื ืืื ืืืืื ืืคืื ืงืฆืืื ืืื ืืื ืฉืชื ืืืืฉืืช. ืืืืฉื ืืจืืฉืื ื ืื ืืฉืืืืชืืช ืืชืคืกื ืจืง ืืืื ืืื ืืืงืืืคืื ื ืื ืฉ render ืขืืฉืื ืืฆืื, ืืืืืฉื ืืฉื ืื ืืฉืืืืชืืช ืืชืืืืืช ื body ืืืื ืืืืืืช ืืชืคืืก ืื ืืืื ืืื ืฉืืื ืฉื ืงืืื.
ืืชืงืืคื ืืืืจืื ื ืืขืืคื ืื ื ืืืืชื ืงืฉื ืืืชืจ ืืืืฆืืข ืืืื ืฉ create-react-app ืืืื ืืืืจืืช eslint ืฉืืืืืฆืืช ืืืืืง ืขื ืืืืคื, ืืืืืจ ืขื ืืืืฉื ืืฉื ืื. ืืืกืืจ ืฉืืื ืืื:
https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-screen-queries.md
ืื ืขืืฉืื? ืืชืงื ืื ืืช ื eslint ืืืืื. ืืชืื ืืงืืืฅ package.json ืฉื ืคืจืืืงื create-react-app ืืืฉ ื ืืื ืืืฆืื ืืช ืืืืืง ืืื:
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
ืื ืื ืฉืฆืจืื ืืขืฉืืช ืื ืืืืืช ืืช ืฉื ืืืื ืืชืื ืืืืขืช ืืฉืืืื ืื ืืฃ ืืืกืืจ ืขื ืืืื, ืืืงืจื ืฉืื ื ืืืืืื ืืืขืืืชืืื ืื testing-library/prefer-screen-queries ื testing-library/render-result-naming-convention ืืื ืืืกืืคืื ืืืืง rules ื package.json ืฉืื ืืจื ืืช ืฉื ืืื:
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
],
"rules": {
"testing-library/prefer-screen-queries": "off",
"testing-library/render-result-naming-convention": "off"
}
},
ืืชืืฆืื? ืืืืกืืืจื ืจืืืข ืืืชืจ ืืืคืฉืจ ืืืืืจ ืืขืืื ืืืืชืืงื ืืืขืืืช ืืืืชืืืช ืืงืื.
ื .ื. ืืคืฉืจ ืืืฉืชืืฉ ืืืจืืง ืืื ืื ืคืขื ืฉืืชื ืื ืืกืืืืื ืขื eslint. ืืืชืจ ืืืฉืื ืืืจืช.1 419
ืืฆื ืืืืจืชื ืชืืืืืื ืืขืื ืชื ืืจืืง ืืืืื ืืืืฉืื ืืืืืข ืืืืช ืืกืคืจ, ืฉื ืืืืื ืืืืื ืืขืฆืื ืืจื ืืงืืืื ืืืืืื ืขืฆืื (ืืืืืง ืืื ืชืืืื ืฉื ืฉืืจ ืืืืช) ืืื ืื ืืืฉืชืชืฃ ืืคืขืืืืืืช ืืืจืชืืืช ืขื ืืืืืื ืืืืจืื ืืืืชื ืื ืืฉืืืื. ืืฆืืจื ืืืชื ืคืขืืืืืืช ื ืืื ืชืืืืืื ืืืืชืืช ืฉืื ืืช ืืืื ื ืืคืขืืืืช ืืืื ืืืื ืืืชืจ ืืคืขืืืืช ืืชื ืืขืช ื ืืขืจ ืืืฉืจ ืืฉืืขืืจ ืงืืืกื.
ืืชืืืืืื ืฉืืื ืืื ืชื ืืจืืง ืืฉืฆืจืืืื ืืืืื ืืืืืช ืืืื ืืืืืื ืื ืืื ืฉืืืืืื ืืช ืืืชืืจ ืืืืื ืืืืชืจ - ืืืื ืฆืจืืืื ืืช ืชืฉืืืช ืืื ืืืฉืืขืืชืืช ืืืืชืจ. ืืืื ืืืฉืงืืข ืืื ืฉืขื ืืืฉืืช ืืื ืืื ืฉื ืืื ืขื ืืืจื (ืืื ืขื ืืื) ืืืืืื ืื ืืกืคืจื ืื ืื ืขืฉื, ืื ืืชืืื ืืช ืฉืืื ืืืืฉื ืืืืื ืืขืืจื ืื ืืื ืืืฉืืช ืืื ืืืืื ืืืืชื ืงืืืื ืืืืืื ืขืฆืื. ืื ื ืืืืืื ืืื ืฉืื ืืืืจื ืืกืชืื ืขื ืืชืืืื ืืืื ืื ืืชื ืืืคืื ืืืืืื ืืขืื ืืืชืจ.
ืืื ืืื ืืืื ืฉืชืืืืืื ืืชืจืืื ืืฉืืืช ืืขืืืื ืืืืช ืื ืื ื ื ืจืื ืคืืืช ืืจืืฉื ืืฉืืืืช ืืืืฉืืืช ืืื ืืชืงืืืืช ืืืืจื ืืืชืจ ืฉื ืชืืืืืื ืืืืืื ืืจื ืืืชื ืงืืืื ืืืืืื ืขืฆืื. ืืืง ืืขืจืืืช ืืืืืื ืืืื ืืืืืช ืืกืคืืง ืืฉืืื ืฉืชืืืืืื ืืคืืฆื ืืืชื ืืืืจืืื ืืืชื ืกืคืจ ืืืจืื ืืืื ืืื ืชืืื ื ืืขืจืืช ืืืืฉื ืืืฆืืื ืืืชืจ ืืืืช ืฉืืฉ ืื ื ืืืื.
ืืื ืืฉืจื ืืืื ืื ืืจืื ืืช ืืืคืคื? ืืื ืืืืจืื ืืกืืืื? ืืืื ืืชืืืืืื ืืฉืชืคื ืคืขืืื? ืืืืืืจ ืฉืื ืืืื ืืชืืืืืื ืืืืื, ืืืื ืืฉืจื ืืืื ืื ืืืืืจืื - ื ืฉืืจ ืจืง ืืงืืืช.
1 419
# ืืื ืืืืื ืืืืจืืืืช ืื ืขืืืืช ืืื ืืคืฉืจ ืืขืฉืืช ืืืงืื
ืืฉืืืข ืืืืืขื ืื ืจื ืืจื ืืื ืืคื ืื ืืืื ืขื ืืชื ืืืืช ืืืืื "ืืืืืื ืืืืืจืืืืช" ืื ืืืื. ืื ื ืืืชื ืืืืื ืืืืจืืืืช ืืืจืืืืช ืื ืืืืื ืืืืจืืืืช ืืืืชืืช ืืื ืืืืื ืืืืืืช, ืืืื ืื ืื ืฉืงืืจื ืขืืฉืื ืืืชื ืืกืคืจ. ืืืื ื ืคืชื ืืช ืื ืืื ืืืืื ืื ืงืืจื ืขืืฉืื ืืืชื ืืกืคืจ, ืืื ืื ืื ืขืืื ืืื ืืคืฉืจ ืืขืฉืืช ืืืงืื.
## ืื ืื ืืืืื ืืืืจืืืืช
ืืืืื ืืืืจืืืืช, ืื ืืฉืื ืืืงืืื ืืืชืจ ืืืืื ืืขืืจืืช (Blended Learning) ืืืืืจืช ืืืืงืืคืืื ืืชืืจ "ืฉืืืช ืืืืื ืืืฉืืืช ืืืจืื ืืกืืจืชืืช, ืืืืืจ ืืืืื "ืคื ืื-ืืื-ืคื ืื", ืขื ืืืืื ืืงืืื ืช ื-E-learning, ืืืืฉื ืื ืืฉ ืืืื ืืื ืืื ืืชืืืื ืฉืืื ืขื ืืื, ืงืฆื, ืืงืื ืื ืชืื ืืืืืื, ืืฉืืืื ืืืืื ืคืจืื ืืื ืืืืชื".
ืื ืืกืืื ืืืืจืืช ืื ืืขื ืงืืจืกืื ืืฉืืื ืื, ืืืืื ืืืืจืืืืช ืืืจืฉืช ืืืจืืืช ืืืืื ืืฆื ืืชืืืืืื ืืื ืืื ืฉืืฆืืืืื ืืืชืืื ืืืืขืื ืืืืฉืืื ืืืืื ืืืจืื ืืื ืฉืืืช ืืืืื ืืืจืช ืฉื ืืกืืชื. ืืืืืืช ืฉื ืชืืืืืื ืืงืืืข ืืช ืืงืฆื, ืืืืืืช ืืืชืืืขืฅ ืืืืจื ืื ืืืื, ืืฉืืืื ืขื ืืืกืืจืช ืืืืจืชืืช ืฉื ืืืืื ืืืืชื ืืืคืฉืจืช ืืื ืชืืืื ืืงืื ืืช ืืืงืกืืืื ืฉื ืืื ืขืืืจื ืืืงืืจืก.
ืืืืืื ืืขืืจืืช ืื ืืชืืืืืื ืขืืืจืื ืืช ืืืชื ืืกืืื ืืืืื ืช "ืฉืืืช ืืืืืื", ืืื ืืกืืืืืก ืฉืื ืืื ืืืืข ืืืืื ืืืื ืฉืื ื ืืืชืืื ืื ืืืฉืืช.
ืื ืืื ื ืืืชืืื ืฉืืชืจืืฉ ืืืื ืืืืชืืช ืจืืืช ืืืจืฅ.
ืืืืชืืช ืืื ืืฉ ืืืืืชืื ืืงืืจืื ื, ืชืืืืืื ืืขืื ืชื ืืจืืง ืืืฉืืืื ืืืืืข ืืืืชื ืืืืงืืื ืืชืืืืืื ืืืืจืื ืฆืืคืื ืืฉืืขืืจ ืืจื ืืืื ืืืืช. ืืืืจื ืฆืจืื ืืืื ืืช ืฉืชื ืงืืืฆืืช ืืชืืืืืื ืืืงืืื, ืืืจืืช ืฉืืื ืงืืืฆื ืืจื ืชืงืฉืืจืช ืฉืื ื ืืฆืจืืื ืฉืื ืื.
## ืืื ืื ืื ืขืืื
ืืืจืื ืคืจืื ืืืืช, ืฉืื ืื ื ืืืืจืื ืขืืื ืืืืื ืืื ืืืจ ืืืขื, ืื ืืื ืืงืืืช ืืจืื ืืืืจืื. ืื ืืฉืื ืฉืื ืื ื ืฆืจืืืื ืืืชืืื ืขืืื ืืืืื ื ืฆืจืืืื ืืืืื ืืื ืืขืฉืืช ืืืชื ืืื. ืืืจืื ืคืจืื ืืืืช ืืืจืืืช ืืฉืืืืช ืืกืจืื ืจืืืื ืืื ืืงืืืฆื ืฉื ืื ืฉืื ืฉืืืฉืืื ืืืื, ืกืื ืืจืื ืืชืืื ืืืชืืืช ืืงืฆื ืื ืืฉืืืช ืชืืืืืื ืืืจื ืืงืฆื ืืฉืื ืืืืืื ืืืืืื. ืืฉืืขืืจ ืืื ืืื ืืชืืื ื ืืืืืชื ืืื ืืืื ืื ืืืืข ืืจืืฉ. ืื ื ืืืื ืืืืืข ืืืื ืืช ืืืชื ื ืืฉื ืืงืืืฆืืช ืฉืื ืืช, ืืืื ืงืืืฆื ืื ืืจืื ืืืจืช. ืืืจืื ืคืจืื ืืืืช ืืื ืืืื ืืชืืื ืฉื ืื ืืฉื ืืงืืืฆื ืืืชื ืืชื ืืืืจ.
ืืืืจืื ืืืื ืืงืฉืจ ืืื ืืฉืืขืืชืืช ืคืืืช ืืืง. ืจืื ืืืฉืชืชืคืื ืืขืฉื ืขืื ืคืขืืืืช ืชืื ืืื ืืฆืคืื ืืืื ืืืชืงืฉื ืืฉืืืจ ืขื ืจืืืื ืืืืจื ืื ืืืจืฆืื. ืืื ืฉืื ืืจื ืืืกืชืื ืขื ืืงืืืฆื ืืืื ืืืืืืช ืื ืืชื ืืื ืื. ืืืจืื ืืชืืืืืื ืขื ืื ืืืืช ืืฉืชื ืืจืืื: ืื ืขื ืืื ืืขืืจืช ืืจืฆืื ืืกืื ืื ืกืจื, ืฉืืืขื ืืื ืืืงืื ืืืชืืื ื ืืจืืฉ (ืื ื ืขืืฉื ืืช ืื ืืืืืื ืจืื ืืื ืืืชืจ); ืื ืขื ืืื ืืฆืืจืช ืืืืื ืกืืคืจ ืืื ืืจืงืืืืืช ืขื ืกืงืจืื, ืืฉืืงื ืงืืืฆื ืืขืื ืคืขืืืืืืช ืืืจืชืืืช.
ืื ืืกืืื ืืฉืื ืืื ืฉืชื ืฉืืืืช ืืืืจืื ืืืืชื ืฉืืขืืจ ืืืืจ ืฉืืืืืื ืืืืืจ: ืื ืฉืื ืื ื ืืขืืืจืื ืฉืืขืืจ ืืืื ืืืฉืชืคืื ืืช ืื ืฉื ืืฆื ืืืืชื, ืื ืฉืื ืื ื ืืขืืืจืื ืฉืืขืืจ ืคืจืื ืืื ืืืฉืืจืื ืืืชื ืืืื. ืฉืชื ืืฉืืืืช ืืืืฉืื.
ืื ืื ื ืืืืจ ืืืขืืืจ ืฉืืขืืจ ืืืื ืืื ืกื ืืืกืชื ืืจื ืขื ืืงืื ืฉืื ืฉื ืืฆื ืืืื ืื ืื ื ืฆืจืื ืืืืืจ ืฉืื ืขืืฉืื ืขืื ืืืจืื ืืืืชื ืืื, ืืืื ืืื ืื ืืืืช ืงืฆื ืฉืืื ืืืื ืืืืื. ืืื ืฉืื ืืืืชื ืืฉืชืขืืื ืื ืื ืืืืืืื ืฉืจืง ืืงืฉืืืื ืืืจืฆืื (ืื ืืืืจืื ืื ืืงืฉืงืฉืื ืืืืคืื ืืืืชื ืืื).
ืื ืื ื ืืืืจ ืฉืืขืืจ ืืืืชื ืืคืฉืื ืืฉืืจ ืืืชื ืืืื, ืื ืืืชื ืื ืฉืื ืฉืืกืชืืืื ืืจืืืง ืืืจ ืืืื ืืืื ืืืืืื, ืื ืื ื ืื ืืืื ืืื, ืืื ืื ืืฆืืืืื ืืฉืืืจ ืขื ืืืชื ืจืืช ืจืืืื ืืื ืืืฉืชืชืคืื ืฉื ืืฆืืื ืืืืชื. ืื ืืืืื ืืจืืืช ืืช ืืฉืืขืืจ ืืื ืฉืจืืืื ืกืจื, ืืื ืืจืฆืืืช ืคืจืื ืืืืืช ืืืจื ืืื ืื ืืกืคืืง ืืืืืงืืช ืืืกืจื ืืื ืืขืจืืื ืฉืืฉ ืืกืจืืื ืืืงืืืื, ืื ืฉืื ืื ืื ืื ืื ืืื ืืช ืืฆืคืื ืื ืืชื ืื ืฉื.
ืืื ืื ืืคื ื ืฉืืืืจื ื ืขื ืชืงืืืช ืืื ืืืช, ืืืฉืื ืฉืืืืจ ืืืื ืืืจื ืฉืืชื ืชืง ืื ืืืืฉื, lag-ืื ืืืื ืืื ืืื ืืฆืจืืช ืฉืืืฆืืืืช ืืืชื ื ืืจืืืื, ืืืื ืื ืืฉืคืืข ืขื ืืืฉืชืชืคืื ืฉื ืืฆืืื ืืืืชื.
## ืื ืืคืฉืจ ืืขืฉืืช ืืืงืื
ืืคืืชืจืื ืืืขืืืช ืืืืืืืื ืืงืืืื ืืื ืคืฉืื ืืื ืฉืืื ืงืฉื ืืืืฉืื. ืืืคืชื ืืื ืืืื ื ืฉื ืืชืคืงืื ืืืคืื ืฉื ืืชื ืืกืคืจ ืืืื: ืื ืืชืืจ ืืงืื ืฉืืงื ื ืืืข, ืืื ืืชืืจ ืืงืื ืืคืืฉ ืืืจืื ืืืืื ืืืืจืชืืื ืฉื ืืชืืืืืื ืฉืืืืืื ืืื. ืขืืื ื ืืืคืจืื ืืื ืฉื ื ืืชืคืงืืืื ืืืืืฆืจ ืคืืชืจืื ืฉืื ื ืืื ืืื.
ืืฆื ืืืืืืื ืืื ืฉืื ืืืืื ืืืืืื ืคืจืื ืืื ืืขืืจื ืืืื. ืืื ืื ืฉืชืืืืืื ืืกืืืืื ืืฆืืจืื ืืืืื ืืจืืืง, ืขืืืฃ ืืืืฆืจ ืงืืืื ืืืืืื ืขืฆืื ืฉื ืื ืืฉืืื ืืฉืื ืื ืืืคืชืื ืืชืืืืืื ืืืจ ืืื ืฉืืคืขื ืื ืืืื ืืจืฆืฃ ืืืื ืืืืื ืืืืื ืก ืขื ืฉืืืืช ืขื ื ืืฉืื ืืืืืื. ืืื ืืืจ ืืืื ืืชืจืื ืืืืื ืืืงืฆืืข ืฉืืืื ืืขื ืืช ืชืฉืืืืช ืืงืฆืืขืืืช ืืชืืืืืื.
1 419
# ืื ืื ืืฉืื
ืื ืืช ืจืืฆื ืืคืชืื ืืืื, ืื ืื ืืฉืื ืืืืื ืคืืืคืืจืื ืชืืืจื ืื ืื ืชืืชืื ืืขืฆืื. ืื ืฉืืฉืื ืื ืืืชืื ืคืืกืืื.
ืื ืืช ืจืืฆื ืืื ืืช ืืขืจืืช, ืืขืฆื ืืช ืืืคืื ืืืืชืื ืืช ืื ื CSS ืืฉืืืื ืื ืื ืืฉืื. ืืกืคืืง ืฉืืืืคืืื ืืืื ืืื ืืืคืื ืงืฆืืื ืืืืืช ืชืืื ืืืงืื.
ืืืืชื ืืืจ ืืืื ืืืืืจื ืืื Redux ื MobX, ืืื ืจืืืงื ื Vue, ืืื GraphQL ื REST. ืืืื ืืืช ื ืืื ืฉืืืืฉืจ ืืื ืืืื ืฉืื ื ืืื ืืืืชืงืข ืขื ืืืชื ืคืื ืืช ืื ืืฉืืืืช ืืจืื ืืืชืจ ืืื ืืื ืืชืืจ ืฆืืจื ืฉื ืืกืืช ืืขืช. ืืืืื ืืื ืจืืฆื ืืขืฉืืช ืืื ืืืฅ ืืืืชืงืื.
ืืจืืง ืฉืขืืื ืื ืืืงืจืื ืืืื ืืื "ืืืฉืืืจ ืืืืจ ืื" ืืช ืืืชืืืืืช. ืืช ื CSS ืืคืฉืจ ืืืฉืืืจ ืจืืง, ืืืงืื ืจืืืืงืก ืื ืืืืืงืก ืคืฉืื ืืืชืื ืืช ืื ืืกืืืื ืืงืืืคืื ื ืื ืื ืืงืกืืืื ืืงืื ืืงืกื. ืืืงืจืื ืฉืืืืืื ืืืืืจ ืืื ืืฆื ืืฉืจืช ืื ื ืืืืจ ืืื ืฉืื ื ืืืจ ืืืืจ ืืืชืจ ืืื. ืืืช ืืืืื ืืจืืฉืื ืฉืื ืคืชืืชื ืืคืืืคืืจืื ืื ืืืืช ืฉื ืงืจืืช blogger. ืืืืจื ืืืืืื ืืื ืืืืืข ืืืฉืื ืืืืืืจ. ืืืจื ืื ืืฉืคืจืื.
1 419
# ืจืง ืืืื ืฉืื ืืช ืคืจืืืงื
ืืจืื ืืืชืจ ืงื ืืืืื ืืฉืื ืืืฉ ืืฉืืฉ ืืื ืกืืื ืืืืื, ืืกืืื ืืืื ืืืื ืืืืื ืืื ืืื ืืืชืื ืคืจืืืงื. ืืช ืืืชืจ ืืื ืืืืืื ืืชืืชื ื Rails ืืืื ืฉืืืืชื ืจืืข ืฉืืืืชื ืฆืจืื ืืงืื ืืคืจืกื ืืช ืืงืืจืก ืฉืื ืื ืจืฆืืชื ืืืืื ืจืืืืก, ืืืืืชื ืฆืจืื ืคืจืืืงื ืฉืืคืฉืจ ืืื ืืช ืืืื ืืืืืื.
ืืื ืขื ืื ืืืืื ืืฉืืืช ืืืืืื ืืืืช ืฆืจืื ืืืืืจ ืืช ืืืฉืืื ืฉืืื ืืืืฆืจืช - ืจืง ืืืื ืฉืื ืืช ืคืจืืืงื ืื ืืืืจ ืืืชืจ ืืื ืขื ืจืืช ืืืืืื ืืช ืฉืื ืืืื ืืืืืื.
ืืืืื ืืื ืืืืืื ืืื ืชืืื ืงืฉื, ืืื ืฆืจืื ืืฉืื ืืืชื ืขื ืคืืชืื ืื ืจืง ืืื ืืช ืืงืฆื. ืงืืื ืื ืื ืืืงืื ืืงืจืื ืืช ืื ืืชืืขืื ืืขืืืง ืืื ืกืืช ืื ืคืืฆ'ืจ, ืื ืื ื ืื ืกืื ืจืง ืืช ืืคืืฆ'ืจืื ืืืจืืฉืื ืืคืจืืืงื ืฉืื ื. ืืื ืื ืืืงืื ืืคืชืืจ ืืช ืืืชื ืืขืื ืืืกืคืจ ืืจืืื ืฉืื ืืช ืืื ืืืืื ืขื ืฉืืืืช ืขืืืื ืฉืื ืืช ืฉืืืื ืืืืืื ืืฆืืขื, ืื ืื ื ืขืืฆืจืื ืืคืืชืจืื ืืจืืฉืื ืืืืฉืืืื ืืืขืื ืืืื, ืื ืฆืจืื ืืืชืงืื ืืคืืฆ'ืจ ืืื.
ืืืฉืืื ื ืืฆืจืช ืืืื ืฉืจืื ืืืชืืจืื ืฉื ืชืืืื ืืืชื ืืขืช ืื ืืืช ืคืจืืืงื ืื ืงืฉืืจืื ืืืืืื ืืขืืืง ืฉื ืืืื ืืืืืื. ืืื ืืฉืื ืื ื "ืืฆืืืืื" ืืื ืืช ืคืจืืืงื ืืืื ืืืืืื ืฉืจืฆืื ื ืื ืื ื ืืืขืื ืืืฉืื ืฉืื ืื ืื ืฉืืฉ ืื ืื ืฉืืื ืืืจืื ืขืืืืื.
ืื, ืืื ืืื ืืช ืคืจืืืงื. ืื, ืืฉืชืืฉื ืืืื ืืืืืืืช ืืืฉืืช ืื ืฆืื ืืช ืืคืืืคืืจืื ืืื ืืืืืฉืฃ ืืืื ืืืืืืืช ืืื. ืืืืจื ืฉืขืฉืืชื ืืช ืื ืฉืื ืืืืื ืืช ืืืื ืืืืืื ืืขืืืง - ืืื ืืคืจืืืงื ืืฉืื ืชืชืืืื ืืชืงื ืืืฉืคืจ ืืช ืื ืฉืืชืืชื. ืจืง ืืฉืื ืืฉืืคืืจืื ืื ืื ื ืืชืืืืื ืืืืืฉืฃ ืืขืืืง ืฉื ืืืชื ืืื ืืืืืื.
1 419
# ืขืจืืื
ืืืช ืืกืืืืช ืฉืจืืคืงืืืจืื ื ืืจืืืฉ ืืื ืืืืื ืืื ืืื ืฉืื ืื ื ืื ืืืกืืคืื ืฉืื ืืืจ ืืืฉ ืืืขืจืืช - ืืืืื ืช ืืืฉืชืืฉืื, ืืืืื ืช ืื ืืื ืืืืฆืจ, ืืืืื ืช ืืืืงื ืืชืืื ื - ืืืื ืจืืืื ืืืืืง ืืช ืืืชื ืืืืจ.
ืืื ืื ืืฉืืื.
ืจืืคืงืืืจืื ื ืืื ืืื ืืื ืฉืคืืชื ืกืชืืืืช. ืืื ืืืคืฉืจ ืืจืืื ืืืฉืืช ืืืกืชืื ืขื ืืงืื ืืืืคื ืืช ืืชืืืช ืืคืืฆ'ืจ ืืื ืืืืชืจ ืงืื ืืืืชืจ ืืืคืืช. ืื ืงืจื ืืื ืฉืืกืชืืืชื ืขื ืงืื ืืฆื ืฉืขื ืืคืฉืื ืื ืืชืืฉืง ืืื ืืืชืื ืืช ืืฉืืจื ืืืื - ืื ืืกืืื ืืื ืืื ืฉืจืืคืงืืืจืื ื ืืื ืืืจืื.
ืืื ืจืืข ื ืชืื ืืคืฉืจ ืืืืฉืื ืืืืืืง ืืืืืื ืืช ืืืื ืืืช ืืืชืืืฅ ืืืืชืื ืืช ืืงืื ืฉืืชื ืื ืจืืฆื ืืืชืื. ืืืื ืจืืข ื ืชืื ืืคืฉืจ ืืืืืื ืฉืืชื ืืืจืื ืืืจืช ืืช ืืงืื, ืืื ืฉืชืจืฆื ืืืชืื ืืช ืืงืื ืืื. ืืื ืฉืืคืขื ืืืื ืื ืชืฆืืจื ืืฉืืช ืืฆื ืฉืขื ืืคืืืืกืืืืฉื ืืคื ื ืฉืชืจืืืฉ "ืืืื" ืืืชืื ืืช ืืคืืฆ'ืจ.
1 419
# ืืืืช React ื ref
ืจืื ืืืืื ืืืืื ืืืชืื ืชืืืช ืืงืกื ืืจืืืงื ืขื ืืฉืชื ื ref ืืืงืื state. ืืช ืืงืื ืืื ืืื ืืชื ืืฉืืื ืืืฆืื ืชืืืช ืงืื ืืืคืชืืจ, ืืืืคืฉืจ ืืืืฆื ืขื ืืืคืชืืจ ืจืง ืื ืืฉ ืืงืกื ืืชืืื:
import { useRef } from "react";
export default function App() {
const inputRef = useRef(null);
const hasText = inputRef?.current?.value !== "";
return (
<div className="App">
<h1>Write some text to enable the button</h1>
<input type="text" ref={inputRef} />
<button
disabled={!hasText}
>Go</button>
<p>hasText = {hasText}</p>
</div>
);
}
ืืื ืืื ืื ืื ืขืืื? ืื ืื - ืืกืืืจื ืื ืืืืช ืงืืจื ืฉื, ืืืื ืืืจืื ืืงืื ืืขืืื ืืื ืฉืจืื ืจืฆื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
