在vue中import()语法为啥不能传入变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vue中import()语法为啥不能传入变量相关的知识,希望对你有一定的参考价值。

参考技术A 一个不错的开头
1 . 首先全局装vue-cli,它是vue的一个脚手架。
cnpm i -g vue-cli1

2 . 然后进入workspace。执行了如下代码,生成vue项目的初始化工作。这里是基于webpack打包。
vue init webpack learnvue1

3 . 引导定制过程中,测试的选项我全部选了否,完了之后,根据提示,进入learnvue。执行 了
cnpm i1

4 . ok,一切顺利。然后,执行
cnpm run dev
12

5 . ok,打开浏览器跑起来了,正常。
然而
6 . 解决scanning files to index
打开常用的webstorm 10.打开这个learnvue。看到了 scanning files to index。意思是正在扫描文件索引。听起来是项目文件读取的问题。怎么可能要扫描这么长时间。没有大文件呀?于是我放弃这次vue init出来的文件。决定删除它。就在我删除文件的时候,window提示我文件目录结构太深,无法删除。这让我想到了什么,那就是scanning files to index也是这个原因。唯一的就是node_modules。解决 scanning files to index的办法就是在这个node_module文件上右键。mark Directory As > Excluded。
重新打开项目。ok!
7 . webtorm的两个vue插件都装了。(vue-for-idea和vue.js)
8 . 解决es 6
当我想愉快地尝试vue的时候,发现script里的代码给我标红了,说我语法错误了。于是在language &&framework里 解决es 6的问题。并且在vue的script里用type=”text/babel”或者type=”text/ecmascipt-6”什么的,还是描红报错。

为啥我不能访问在宏中声明的变量,除非我传入变量的名称?

【中文标题】为啥我不能访问在宏中声明的变量,除非我传入变量的名称?【英文标题】:Why can I not access a variable declared in a macro unless I pass in the name of the variable?为什么我不能访问在宏中声明的变量,除非我传入变量的名称? 【发布时间】:2019-05-11 23:10:32 【问题描述】:

我有这个宏:

macro_rules! set_vars 
    ( $($x:ident),* ) => 
        let outer = 42;
        $( let $x = outer; )*
    
                                                                             

扩展此调用:

set_vars!(x, y, z);

达到我的预期(来自--pretty=expanded):

let outer = 42;
let x = outer;
let y = outer;
let z = outer;

在随后的代码中我可以打印xyz就好了,但是outer似乎是未定义的:

error[E0425]: cannot find value `outer` in this scope
  --> src/main.rs:11:5
   |
11 |     outer;
   |     ^^^^^ not found in this scope

如果我将 outer 变量作为显式宏参数传递,我可以访问它。

这是故意的,与“宏观卫生”有关吗?如果是这样,那么以某种特殊方式在--pretty=expanded 中标记此类“内部”变量可能有意义吗?

【问题讨论】:

【参考方案1】:

是的,这是宏观卫生。在宏中声明的标识符在宏之外不可用(反之亦然)。 Rust 宏不是 C 宏(也就是说,Rust 宏不仅仅是美化的文本替换)。

另见:

The Little Book of Rust Macros A Practical Intro to Macros So, what are hygienic macros anyway?

【讨论】:

有办法绕过吗? @ArtyomGevorgyan 不是我知道的;在这种情况下传递名称。

以上是关于在vue中import()语法为啥不能传入变量的主要内容,如果未能解决你的问题,请参考以下文章

为啥 vue.js 的 data 中定义的变量不能赋值给对象?

为啥我的js文件import 语法还报错

为啥我不能删除代码中的中间变量?

为啥不能导入 random模块,求解

为啥jsp页面中传入JavaBean对象里面的中文参数在调试时显示成员变量是乱码?

分类为啥不能添加成员变量