现在,在我的 Vue 应用程序中,当我单击 a 时<router-link>
,它会转到页面,但滚动级别与上一页相同(因为链接只是替换了组件)。
我想知道是否有一个vue-router
功能可以让页面转到顶部,或者我需要使用其他一些 JS 编程来实现这一点。
非常感谢您的帮助。
正如我在标题中简洁地指出的那样,我想知道在 Vue 中编写自闭合标签是否是传统的和/或合法的。
在文档中,我看到了开始和结束标记,但我在其他地方看到作者将组件编写为自结束标记,例如 <some-component />
问题分为两部分:
我正在阅读这篇关于使用可观察量的文章,并遇到了几个作者写了这样的内容的例子:
map((value: IObj) => {
return value.name!.value; // << What is this??
})
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这个感叹号和点的组合。作者在文章中多次这样做,让我认为这是一个错字。我知道?.
但从未!.
在 JS、TypeScript 或 Flow 中见过。
有人可以帮我理解那是什么吗?具体来说:
图像标记(<img src="" alt="" />
),换行符标记(<br />
)或水平规则标记(<hr />
)在末尾有斜杠,表示自己为自闭标记.但是,当这些对象是由javascript创建的,并且我查看了源代码时,它们没有斜杠,使它们因W3C标准而无效.
我怎么能克服这个问题?
(我使用javascript原型库)
我试图在云9上使用Vue CLI,并遵循所有安装指南,但我不是后端人员,因此我很难弄清为什么该页面在每个页面上都显示“无效的主机标头”。
这是我所做的:
practice
npm install vue
npm install @vue/cli
npm install @vue-cli-service-global
(对此表示满意)login-system
通过vue create login-system
vue serve
当服务器在执行该命令后启动时,我转至http://practice-myusername.c9user.io:8080,其中仅显示“ Invalid Host header”(无效的主机头),服务器控制台或客户端控制台中没有错误。如果服务器无法启动,则默认情况下会显示一个页面,上面写着“没有应用程序正在运行...”。
转到http://practice-myusername.c9user.io或http://practice-myusername.c9user.io/anywhere或http://practice-myusername.c9user.io/aradfa99asd都产生相同的结果。
每当我通过最后一项运行服务器时,vue serve
IDE中的“服务器”选项卡都会显示
您的服务器应用程序可能使用了错误的端口和IP。尝试传递$ PORT和$ IP正确启动您的应用程序。您可以在我们的文档中找到更多信息
我还没有发现该文档对解决我的问题很有用。
这是怎么回事?再说一次,我不知道任何后端的东西,所以详细的回答/答复将不胜感激。
编辑:
不断的挖掘表明我应该将其添加到我的webpack.config.js
:
devServer: {
compress: true,
disableHostCheck: true,
}
Run Code Online (Sandbox Code Playgroud)
我知道Vue CLI构建在webpack之上,但是我在任何地方都找不到配置文件,并且创建一个配置文件似乎无济于事。我也遇到了一个解决方案,vue.config.js
但我不知道如何在其中构造内容,也不知道将其放入哪个目录。
我的javascript中有以下代码:
$.ajax({
url : 'update_data.php',
type : 'POST',
data : 'asdfasd', //d,
success : function(response){
console.log(response);
},
error: function(jqXHR, textStatus, errorThrown){
console.log('jqXHR.responseText: ' + jqXHR.responseText);
console.log('jqXHR.responseXML : ' + jqXHR.responseXML);
console.log('textStatus: ' + textStatus);
console.log('errorThrown: ' + errorThrown);
},
dataType : 'text'
});
Run Code Online (Sandbox Code Playgroud)
这是我的'update_data.php':
<?php
echo json_encode($_POST);
if (isset($_POST['data'])){
echo "here!";
} else {
echo "failed jquery";
}
?>
Run Code Online (Sandbox Code Playgroud)
当我运行Ajax方法时,我在控制台中得到以下响应:
[]failed jquery
Run Code Online (Sandbox Code Playgroud)
意思是update_data.php没有收到任何POST请求.'[]'来自json_econd($ _ POST),'失败的jquery'来自if/else.
我究竟做错了什么?
输入这个:
JSON.parse("{list : []}");
Run Code Online (Sandbox Code Playgroud)
在控制台中生成:
VM9793:1 Uncaught SyntaxError: Unexpected token l in JSON at position 1
at JSON.parse (<anonymous>)
at <anonymous>:1:6
Run Code Online (Sandbox Code Playgroud)
javascript ×5
vue.js ×3
ajax ×1
coding-style ×1
conventions ×1
html ×1
jquery ×1
json ×1
node.js ×1
php ×1
server ×1
typescript ×1
vue-cli ×1
vue-router ×1