关于后端模板和前端 JavaScript 的关系
回答了一个同学的关于这方面的提问 https://cnodejs.org/topic/553f1d2e3575612520161b63#55405eb2208c44bf37c24d90
问题
您好,资料我看了,但我还是不太懂,ejs传过来的参数不就是到前端了吗?为什么js不可以用呢?js全局变量是怎么用呢?还有<script>标签和<% %>标签有什么区别么?<% %>不就是可以写js代码的吗?不好意思,新手,实在搞不明白!
回答
我没有看过 ejs 的代码怎么实现这些的。我的理解是
- ejs传过来的参数不就是到前端了吗?
ejs 穿的不是参数,不是变量,而是文本。因为你在前端看到的 html 是后端生成再发送到浏览器,所以你在 render 之后在后端改动了变量的话,变化是不会体现在前端的,就是你的 html 还是老样子,除非你是用的 meteor 有自动 subscribe 的功能,所以他们号称自己是 real-time。 - 为什么js不可以用呢?
因为传过来的后端变量被嵌入到 html,所以 js 不能直接用。 - js全局变量是怎么用呢?
<javascript>标签里都是全局变量,如果不是在函数中定义的话 - 还有<script>标签和<% %>标签有什么区别么?
<script> 是 js 标签,<% %>标签是后端模板标签,会被后端生成的值(字符串)替代。 - <% %>不就是可以写js代码的吗?
它是一个表达式,里面可以是 js 代码,但是最终生成字符串嵌入到 html 中,让前端渲染,所以用户可以看到动态的内容。