在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;
在随后的代码中我可以打印x
、y
和z
就好了,但是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 中定义的变量不能赋值给对象?