Vue: ์–‘์‹ ๊ฐ’ ๋ฐ”์ธ๋”ฉ์ด ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2016๋…„ 12์›” 20์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vuejs/vue

๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜๋Š” mounted ๋ฉ”์„œ๋“œ๋งŒ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

this.myValue = 'a value'

$(this.$el).parent('form').submit()

๋‚ด ๊ตฌ์„ฑ ์š”์†Œ html์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

<form action="http://โ€ฆ">
    <input type="text" :value="myValue">
</form>

๋ณด์‹œ๋‹ค์‹œํ”ผ jQuery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–‘์‹์„ ์ œ์ถœํ•˜๊ณ  ๊ฐ’ ํ• ๋‹น๊ณผ ์–‘์‹ ์ œ์ถœ์ด ๋ชจ๋‘ ๋™์ผํ•œ ํ•จ์ˆ˜์—์„œ ๋ฐœ์ƒํ•˜๋ฉด __๋นˆ ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ์ถœ๋ฉ๋‹ˆ๋‹ค__. ์ง€์—ฐ ์—†์ด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฌผ๋ก  ์ด์ƒ์ ์ด์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

setTimeout(() => {
    $(this.$el).parent('form').submit()
})

์ด๊ฒƒ์€ ๋งˆ์šดํŠธ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์—๋„ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด on blur out ์ด๋ฏ€๋กœ ํŽ˜์ด์ง€ ๋กœ๋“œ ๋˜๋Š” ์ง€์—ฐ๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. :value ๋Œ€ v-model ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

Vue๋‚˜ JS์˜ ๋‚ด๋ถ€๋Š” ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ ์•„์ง ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ ํ‹ฑ์—์„œ ์ œ์ถœ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

vm.$nextTick ์‚ฌ์šฉ

this.myValue = 'a value'

this.$nextTick(function () {
  $(this.$el).parent('form').submit()
})

๋ชจ๋“  3 ๋Œ“๊ธ€

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ƒํ™ฉ์—์„œ ajax์— ๋Œ€ํ•œ param์˜ ๊ฐ’์„ ์ˆ˜๋™์œผ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ์ „์— ์ด ๋ฌธ์ œ๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์•„๋ฌด๊ฒƒ๋„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋‚ด ๊ฒฝ์šฐ์—๋Š” ํŽ˜์ด์ง€ ์ƒˆ๋กœ ๊ณ ์นจ์„ ํฌํ•จํ•˜์—ฌ ์ž๋™์œผ๋กœ ์–‘์‹์„ ์ œ์ถœํ•˜๊ณ  Ajax๋ฅผ ํ†ตํ•ด ๋ณด๋‚ด๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…์ด ์—†๋‹ค๋ฉด ๋ฌธ์„œ์—์„œ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

vm.$nextTick ์‚ฌ์šฉ

this.myValue = 'a value'

this.$nextTick(function () {
  $(this.$el).parent('form').submit()
})
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰