<h3 dir="auto">Version</h3>
<p dir="auto">2.6.11</p>
<h3 dir="auto">Reproduction link</h3>
<p dir="auto">data:,see-steps-below</p>
<h3 dir="auto">Steps to reproduce</h3>
<p dir="auto">Step 1:</p>
<div class="highlight highlight-text-html-vue notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="&lt;template&gt;
&lt;div&gt;
  &lt;textarea v-on:keypress.ctrl.enter=&quot;handleSubmit&quot;&gt;&lt;/textarea&gt;
&lt;/div&gt;
&lt;/template&gt;

&lt;script type=&quot;module&quot;&gt;
import Vue from 'https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.esm.browser.min.js';
let App={
  methods: {
    handleSubmit(event){
      console.log('Ctrl Enter pressed');
    },
  }
};
new Vue(App).$mount(document.querySelector('template'));
&lt;/script&gt;"><pre class="notranslate">&lt;<span class="pl-ent">template</span>&gt;
&lt;<span class="pl-ent">div</span>&gt;
  &lt;<span class="pl-ent">textarea</span> <span class="pl-e">v-on</span>:<span class="pl-e">keypress</span>.ctrl.<span class="pl-e">enter</span>=<span class="pl-s1"><span class="pl-pds">"</span>handleSubmit<span class="pl-pds">"</span></span>&gt;&lt;/<span class="pl-ent">textarea</span>&gt;
&lt;/<span class="pl-ent">div</span>&gt;
&lt;/<span class="pl-ent">template</span>&gt;

<span class="pl-s1">&lt;<span class="pl-ent">script</span> <span class="pl-e">type</span>=<span class="pl-s"><span class="pl-pds">"</span>module<span class="pl-pds">"</span></span>&gt;</span>
<span class="pl-s1"><span class="pl-k">import</span> <span class="pl-smi">Vue</span> <span class="pl-k">from</span> <span class="pl-s"><span class="pl-pds">'</span>https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.esm.browser.min.js<span class="pl-pds">'</span></span>;</span>
<span class="pl-s1"><span class="pl-k">let</span> App<span class="pl-k">=</span>{</span>
<span class="pl-s1">  methods<span class="pl-k">:</span> {</span>
<span class="pl-s1">    <span class="pl-en">handleSubmit</span>(<span class="pl-c1">event</span>){</span>
<span class="pl-s1">      <span class="pl-en">console</span>.<span class="pl-c1">log</span>(<span class="pl-s"><span class="pl-pds">'</span>Ctrl Enter pressed<span class="pl-pds">'</span></span>);</span>
<span class="pl-s1">    },</span>
<span class="pl-s1">  }</span>
<span class="pl-s1">};</span>
<span class="pl-s1"><span class="pl-k">new</span> <span class="pl-en">Vue</span>(App).<span class="pl-en">$mount</span>(<span class="pl-c1">document</span>.<span class="pl-c1">querySelector</span>(<span class="pl-s"><span class="pl-pds">'</span>template<span class="pl-pds">'</span></span>));</span>
<span class="pl-s1">&lt;/<span class="pl-ent">script</span>&gt;</span></pre></div>
<p dir="auto">Step 1:<br>
focus on the textarea and press Ctrl   Enter</p>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">the event handler <code class="notranslate">handleSubmit</code> would be invoked</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">It doesn't work across browsers.</p>
<table role="table">
<thead>
<tr>
<th>event \ working \ browser</th>
<th>Chrome 90</th>
<th>Firefox 78</th>
</tr>
</thead>
<tbody>
<tr>
<td>v-on:keypress.ctrl.enter</td>
<td>N</td>
<td>Y</td>
</tr>
<tr>
<td>v-on:keypress.ctrl.10</td>
<td>Y</td>
<td>N</td>
</tr>
<tr>
<td>v-on:keypress.ctrl.13</td>
<td>N</td>
<td>Y</td>
</tr>
<tr>
<td>v-on:keypress.ctrl.10.13</td>
<td>Y</td>
<td>Y</td>
</tr>
</tbody>
</table>
<hr>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// v-on:keypress.ctrl.enter=&quot;handleInputEnter&quot;
on: {
  &quot;keypress&quot;: function($event) {
    if (!$event.type.indexOf('key') &amp;&amp; _k($event.keyCode, &quot;enter&quot;, 13, $event.key, &quot;Enter&quot;))
      return null;
    if (!$event.ctrlKey)
      return null;
    return handleInputEnter($event)
  }
}"><pre class="notranslate"><span class="pl-c">// v-on:keypress.ctrl.enter="handleInputEnter"</span>
on: <span class="pl-kos">{</span>
  <span class="pl-s">"keypress"</span>: <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">$event</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">$event</span><span class="pl-kos">.</span><span class="pl-c1">type</span><span class="pl-kos">.</span><span class="pl-en">indexOf</span><span class="pl-kos">(</span><span class="pl-s">'key'</span><span class="pl-kos">)</span> <span class="pl-c1">&amp;&amp;</span> <span class="pl-en">_k</span><span class="pl-kos">(</span><span class="pl-s1">$event</span><span class="pl-kos">.</span><span class="pl-c1">keyCode</span><span class="pl-kos">,</span> <span class="pl-s">"enter"</span><span class="pl-kos">,</span> <span class="pl-c1">13</span><span class="pl-kos">,</span> <span class="pl-s1">$event</span><span class="pl-kos">.</span><span class="pl-c1">key</span><span class="pl-kos">,</span> <span class="pl-s">"Enter"</span><span class="pl-kos">)</span><span class="pl-kos">)</span>
      <span class="pl-k">return</span> <span class="pl-c1">null</span><span class="pl-kos">;</span>
    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-c1">!</span><span class="pl-s1">$event</span><span class="pl-kos">.</span><span class="pl-c1">ctrlKey</span><span class="pl-kos">)</span>
      <span class="pl-k">return</span> <span class="pl-c1">null</span><span class="pl-kos">;</span>
    <span class="pl-k">return</span> <span class="pl-en">handleInputEnter</span><span class="pl-kos">(</span><span class="pl-s1">$event</span><span class="pl-kos">)</span>
  <span class="pl-kos">}</span>
<span class="pl-kos">}</span></pre></div>
<p dir="auto">Use <code class="notranslate">.enter</code> as an alias of <code class="notranslate">.13</code> is sometimes misleading. If event keyCode is 13, then you may say Enter key is pressed, but if Enter pressed, the keyCode may also be 10 if Ctrl pressed in the mean time.</p>
<p dir="auto">Currently I use <code class="notranslate">v-on:keypress.ctrl.10.13="handleInputEnter"</code> as a workaround.</p>
<p dir="auto">So my idea is: either to add a caveat note in docuemtation section <code class="notranslate">.enter</code>, or let the component template compiler handle <code class="notranslate">.enter</code> modifier correctly.</p>
<h3 dir="auto">Version</h3>
<p dir="auto">2.6.11</p>
<h3 dir="auto">Reproduction link</h3>
<p dir="auto"><a href="https://codesandbox.io/s/kind-water-hqs5f?file=/src/App.vue" rel="nofollow">https://codesandbox.io/s/kind-water-hqs5f?file=/src/App.vue</a></p>
<h3 dir="auto">Steps to reproduce</h3>
<p dir="auto">在任意输入框输入任意内容</p>
<h3 dir="auto">What is expected?</h3>
<p dir="auto">输入流畅</p>
<h3 dir="auto">What is actually happening?</h3>
<p dir="auto">输入卡顿</p>
<hr>
<p dir="auto">在v-for里面，绑定了$attrs的都会触发更新，引起不必要的渲染</p>