để truy cập data của Mongo bằng 1 tool quản trị CSDL (MongoDB compass, Studio 3T,....) thì e cần phải map port của container db để nó có thể được truy cập từ máy của e.
#docker-compose.yml...db:ports:-"8000:27017"# chọn cổng 8000 hoặc cổng nào tuỳ e thích
Sau đó ở MongoDB Compass e connect tới cổng 8000 là đc nhé
bài viết ngắn gọn, hữu ích cho người mới bắt đầu. Cơ mà em có góp ý nhỏ tiêu đề chưa chính xác nha bác (beginner) hay để người bắt đầu cho nó thuần Việt
Đây là 1 điều ở trong docs của Vue đã nói tới nhé e, gọi là One Way Data flow. Data truyền từ cha xuống con thông qua props, thì nó sẽ chỉ chảy (flow) từ cha xuống, chứ không chảy cả theo chiều ngược lại, điều này tránh việc e mutate trực tiếp props ở con, làm data ở cha thay đổi (mà không qua emit).
Do với ở bài của e, e truyền vào như kia thì chúng chỉ làm giá trị khởi đầu cho con thôi, kể từ sau thì props thay đổi data của con sẽ ko reactive nữa
Thế tại sao this.heySon vẫn reactive??
Ở ngay trong docs kia có note luôn rằng: nếu e truyền array hoặc object từ cha vào con thì vì chúng được truyền xuống bằng địa chỉ (reference), nên cha thay đổi sẽ thấy con reactive ngay, hay nói cách khác, ở đây con có thể thay đổi trực tiếp props dẫn tới data ở phía cha cũng bị thay đổi theo --->> Flow của app bắt đầu bị rối rắm
Do đó a đoán là heySon của e ở cha đang là object hoặc array nên sẽ được truyền xuống con bằng địa chỉ (pass-by-reference) còn heyNeighbor đang là number, string hoặc boolean (truyền xuống bằng giá trị, pass-by-value, sẽ không reactive theo cha)
Giải pháp cho việc này
Việc heySon đang bị truyền vào bằng địa chỉ như kia sẽ làm cho con có thể thay đổi trực tiếp props mà không thông qua emit. Đồng thời a hiểu ý định của e là "truyền props trực tiếp vào data của con, để khi props thay đổi thì data của con cũng reactive theo", nhưng điều này vô hình chung sẽ làm flow của app sẽ rối, không đúng với tư tưởng của Vue là props down, event up (ý là data từ cha xuống con thì qua props, còn con lên cha thì qua emit) và hậu quả là dễ sinh ra lỗi (như lỗi e đang gặp phải vậy ).
Cách giải quyết a thường chọn là ở con, e watch props từ cha hoặc dùng computed rồi update vào data của con. Demo:
<script>// Parent.vueimport Child from'./Child'exportdefault{
components:{
Child
},data:()=>{return{
heySon:{
name:'MTD',
age:25},
heyNeighbor:456};},
methods:{updateSonAge(){this.heySon.age = Math.random()},updateNeighbor(){this.heyNeighbor = Math.random()}},}</script><script>// Child.vueexportdefault{
props:['heySon','heyNeighbor'],data(){return{
foot:{...this.heySon },// tạo giá trị khởi đầu sẽ ko bị reactive theo cha vì đây là object mới
hands:{
leftHand:this.heyNeighbor // tạo giá trị khởi đầu, ko bị reactive theo cha vì đây là number}}},
watch:{
heySon:{
deep:true,handler(){this.foot ={...this.heySon }// chỗ này vẫn phải dùng "..." nếu không là `foot` sẽ có cùng địa chỉ với `heySon` và khi con update thì cha sẽ tự update theo}},heyNeighbor(){this.hands.leftHand =this.heyNeighbor
}}// hoặc dùng computed
computed:{hands(){return{
leftHand:this.heyNeighbor
}}}}</script>
Ở trên thì foot và hands sẽ reactive theo props từ cha, nhưng khi e bind foot và hands và khi giá trị của chúng thay đổi từ phía con thì data sẽ không tự truyền lại cha, mà e cần phải dùng emit để đồng bộ (nếu e cần thiết điều đó)
Chú ý nữa rằng ở con nếu e thay đổi trực tiếp giá trị của 1 thuộc tính của heySon (nested props) thì sẽ không thấy báo lỗi Avoid mutating a prop directly - ko đc thay đổi props, mặc dù thực tế ta đang thay đổi giá trị thuộc tính của nó. Đây là 1 vấn đề đã đc Evan giải thích ở đây. Mặc dù đây ko phải là lỗi nhưng vẫn ko khuyến khích dùng cách này. Cứ muốn thay đổi data của cha thì luôn dùng emit nhé e.
THẢO LUẬN
Bạn ơi, cho mình hỏi có giải mã bằng phép nhân không ạ?
Cảm ơn bạn Tú rất nhiều! tuyệt vời!
cảm ơn bạn, tiếng anh nghếu ngáo ngại quá
))
để truy cập data của Mongo bằng 1 tool quản trị CSDL (MongoDB compass, Studio 3T,....) thì e cần phải map port của container
dbđể nó có thể được truy cập từ máy của e.Sau đó ở MongoDB Compass e connect tới cổng 8000 là đc nhé
chỗ này hình như có gì đó sai sai
ví dụ:
let val;
console.log( val); // undefined
nhờ bạn giải thích chỗ này, theo như bài nói let dc khởi tạo ko có giá trị, thì khi sao in ra lại là undefined nhỉ?
Chào anh, anh cho e hỏi để có thể truy cập dữ liệu ở .docker/data/db bằng MongodbCompass thì truy cập như thế nào ạ? Em cảm ơn ạ!
bài viết ngắn gọn, hữu ích cho người mới bắt đầu. Cơ mà em có góp ý nhỏ tiêu đề chưa chính xác nha bác (beginner) hay để người bắt đầu cho nó thuần Việt
cho mình hỏi có 3 bảng product , product_cate , category. khi product_Repo->getAll() , có các nào mình lấy ra đc cate_name trong bảng category
Cảm ơn bài viết bạn chia sẻ. Mình cực kì thích những bài viết nói về Architecture của một vấn đề gì đó !
Mình dùng
Nhưng không loại được trường hợp dấu @ nằm ở giữa từ ví dụ như trong email.
Anh chị nào cần tư vấn về ChatBot cho page liên hệ trực tiếp qua: SĐT: 0912543223 hoặc zalo: 0912543223. Em sẽ hỗ trợ 24/7 ạ
Anh chị nào cần tư vấn về ChatBot cho page liên hệ trực tiếp qua: SĐT: 0912543223 hoặc zalo: 0912543223. Em sẽ hỗ trợ 24/7 ạ
Anh chị nào cần tư vấn về ChatBot cho page liên hệ trực tiếp qua: SĐT: 0912543223 hoặc zalo: 0912543223. Em sẽ hỗ trợ 24/7 ạ
Anh chị nào cần tư vấn về ChatBot cho page liên hệ trực tiếp qua: SĐT: 0912543223 hoặc zalo: 0912543223. Em sẽ hỗ trợ 24/7 ạ
Anh chị nào cần tư vấn về ChatBot cho page liên hệ trực tiếp qua: SĐT: 0912543223 hoặc zalo: 0912543223. Em sẽ hỗ trợ 24/7 ạ
Mọi người có thể tham khảo thêm ở đây ạ https://aha.chat/S7SYJQ
tham khảo thêm ở đây ạ https://aha.chat/S7SYJQ
em bị lỗi như này là sao ạ Undefined property: App\Http\Controllers\VnpayController::$apSer
https://ahachat.com/ chatbot xịn xò nè mọi người
Chào e,
Đây là 1 điều ở trong docs của Vue đã nói tới nhé e, gọi là One Way Data flow. Data truyền từ cha xuống con thông qua
props, thì nó sẽ chỉchảy(flow) từ cha xuống, chứ không chảy cả theo chiều ngược lại, điều này tránh việc emutatetrực tiếp props ở con, làm data ở cha thay đổi (mà không quaemit).Do với ở bài của e, e truyền vào như kia thì chúng chỉ làm giá trị khởi đầu cho con thôi, kể từ sau thì props thay đổi data của con sẽ ko reactive nữa
Thế tại sao
this.heySonvẫn reactive??Ở ngay trong docs kia có note luôn rằng: nếu e truyền array hoặc object từ cha vào con thì vì chúng được truyền xuống bằng địa chỉ (reference), nên cha thay đổi sẽ thấy con reactive ngay, hay nói cách khác, ở đây con có thể thay đổi trực tiếp props dẫn tới
dataở phía cha cũng bị thay đổi theo --->> Flow của app bắt đầu bị rối rắmDo đó a đoán là
heySoncủa e ở cha đang là object hoặc array nên sẽ được truyền xuống con bằng địa chỉ (pass-by-reference) cònheyNeighborđang là number, string hoặc boolean (truyền xuống bằng giá trị, pass-by-value, sẽ không reactive theo cha)Giải pháp cho việc này
Việc
).
heySonđang bị truyền vào bằng địa chỉ như kia sẽ làm cho con có thể thay đổi trực tiếp props mà không thông quaemit. Đồng thời a hiểu ý định của e là "truyền props trực tiếp vào data của con, để khi props thay đổi thì data của con cũng reactive theo", nhưng điều này vô hình chung sẽ làm flow của app sẽ rối, không đúng với tư tưởng của Vue làprops down, event up(ý là data từ cha xuống con thì qua props, còn con lên cha thì quaemit) và hậu quả là dễ sinh ra lỗi (như lỗi e đang gặp phải vậyCách giải quyết a thường chọn là ở con, e
watchprops từ cha hoặc dùngcomputedrồi update vàodatacủa con. Demo:Ở trên thì
footvàhandssẽ reactive theo props từ cha, nhưng khi e bindfootvàhandsvà khi giá trị của chúng thay đổi từ phía con thì data sẽ không tự truyền lại cha, mà e cần phải dùngemitđể đồng bộ (nếu e cần thiết điều đó)Chú ý nữa rằng ở con nếu e thay đổi trực tiếp giá trị của 1 thuộc tính của
heySon(nested props) thì sẽ không thấy báo lỗiAvoid mutating a prop directly-ko đc thay đổi props, mặc dù thực tế ta đang thay đổi giá trị thuộc tính của nó. Đây là 1 vấn đề đã đc Evan giải thích ở đây. Mặc dù đây ko phải là lỗi nhưng vẫn ko khuyến khích dùng cách này. Cứ muốn thay đổi data của cha thì luôn dùngemitnhé e.