uni-app 在.vue文件中的script标签中代码块无法触发

uni-app 在.vue文件中的script标签中代码块无法触发

开发环境 版本号 项目创建方式
HbuilderX 3.2.12 Vue

操作步骤:

将上面的代码块放到vue代码块中,到vue文件里输入试试就知道了,注意输入位置。

预期结果:

只要是vue文件,应该在任何位置都可以触发,或者能够根据代码中的标签判断当前输入的是js还是vue代码,自动匹配js中的代码块。 或者可以提供一个通用的代码块,不区分语言,任何文件,任何位置,只要触发关键字就提示。

实际结果:

实际结果就是在标签script标签外可以,但是我想在script标签内输入

bug描述:

在代码块文件 vue.json中定义了以下一个片段,保存后

"adsasfkjhsdjkdf": {  
        "body": [  
            "js code ..."  
        ],  
        "description": "aaasssddd",  
        "prefix": "aaasssddd"  
    }

然后在vue文件中的</template>之间输入,可以触发,见附件1; 在<script>标签下输入就不会触发,见附件2;

把上面的片段复制到javascript.json中也不能触发,如果文件扩展名是js,则可以触发。

Image Image


更多关于uni-app 在.vue文件中的script标签中代码块无法触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

更多关于uni-app 在.vue文件中的script标签中代码块无法触发的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题是由于HBuilderX的代码片段(snippet)触发机制导致的。在.vue文件中,代码片段的触发是基于当前光标所在的语言区域来判断的。

原因分析:

  1. .vue文件是混合语言文件,包含template(html)、script(javascript/ts)、style(css/scss/less)三个部分
  2. HBuilderX会根据光标位置自动识别当前语言上下文
  3. 当光标在<script>标签内时,编辑器将其识别为JavaScript上下文
  4. 因此只会触发javascript.json中定义的代码片段,而不会触发vue.json中的片段

解决方案:

  1. 在javascript.json中定义代码片段 将你的代码片段从vue.json移动到javascript.json中:
    {
      "aaasssddd": {
        "body": ["js code ..."],
        "description": "aaasssddd",
        "prefix": "aaasssddd"
      }
    }
回到顶部