Maison >interface Web >Questions et réponses frontales >Comment transmettre une valeur via le framework vuejs
Méthode de transfert de valeur de routage du framework Vuejs : 1. Appelez directement l'instruction "$router.push(...)" pour transporter les paramètres pour sauter pour transférer la valeur 2. Utilisez axios pour transférer la valeur, vous pouvez appeler "this" ; .$axios. get(...)" pour transmettre la valeur.
L'environnement d'exploitation de ce tutoriel : système Windows 7, vue version 2.9.6, ordinateur DELL G3.
Résumez le transfert de valeur de route dans Vue, qui implique l'utilisation d'axios
Il est facile de confondre ces méthodes lors de l'utilisation de
Configuration de routage correspondante :
{ path: '/detail/:id', name: 'Detail', component: Detail }
Remarque : Be assurez-vous d'ajouter /:id
après la route. L'identifiant n'est qu'un nom de paramètre, cela n'a pas d'importance, mais il doit être cohérent avec le nom du paramètre lors du passage et de la réception/:id
,id 只是一个参数名,无所谓,但是需要与传递和接收时的参数名保持一致
直接调用$router.push
实现携带参数跳转
this.$router.push({ path:`/detail/${id}` })
注:在跳转传参时,path
后面是用两个反引号包起来的,而不是双引号或者单引号,并且是使用${}
的形式把所需要的参数传过去
在子组件中进行接收
this.$route.params.id
注:是route
,而不是router
如果使用路由属性中的name
来确定匹配的路由进行传参的话,需要这样:
对应路由的配置:
{ path: '/detail', name: 'Detail', component: Detail }
携带参数跳转:
this.$router.push({ name: 'Detail', params: { id: id } })
注:这里不能使用/:id
来传递参数了,因为父组件中,已经使用params
来携带参数了。
子组件中接收参数:
this.$route.params.id
再次强调,是route
,不是router
用
params
传参,用name
属性对应跳转路径,类似于post
提交,参数不会出现在跳转路径里。
当我们需要把前端的数据带到后端接口时
也可以用这种方式进行传值
例如:
前端中调用后端接口的代码:
this.$axios.get(`http://127.0.0.1:3000/api/user/find/${id}`)
在后端中进行接收:
router.get('/find/:id',(req,res)=>{ //接收let id = req.params.id })
注意是get请求
这样的请求方式是会在地址栏中显示的
地址栏链接示例:http://127.0.0.1:3000/api/user/find/10
对应的路由配置:
{ path: '/detail', name: 'Detail', component: Detail }
携带参数跳转:
this.$router.push({ path:'/detail', query:{ id:id } })
注:这里使用的是query
然后在子组件中进行接收:
this.$route.query.id
注:传递时参数名一定要保持一致,接收时,不要用params
了,要使用query
进行接收
用
query
传参,用path
属性对应跳转路径,类似于get
提交,参数是在路径里显示的。
如果要在axios中使用的话,可以这样:
例如:
前端调用后端接口代码:
this.$axios.get(`http://127.0.0.1:3000/api/user/delete?name=${name}&age=${age}`)
其实这样是和上面再写一个query
是一样的,不过这样更加简便
注:是用两个反引号包起来,后面使用的是 ? 号,而不是 /
使用这种方式的话,可以一次性在地址栏中传递多个值,中间用 & 符进行连接,是get
请求
因为浏览器的地址栏有长度限制,所以如果参数过多时,不建议用这种方式
在后端中进行接收:
router.get('/delete'(req,res)=>{ let name = req.query.name; let age = req.query.age; })
注:这里不要在/delete
后面加东西了,接收的时候用query
的方式进行接收
使用这样的方式进行传值,也是会在地址栏中显示的
地址栏链接示例:http://127.0.0.1:3000/api/user/delete?name=zhangsan&age=10
params
进行传参,一定要用name
属性来对应跳转路径query
进行传参,一定要用path
属性来对应跳转路径这里只说 axios传值
当我们调用后端接口要在数据库中插入数据的时候(添加数据),可以这样使用:
前端调用后端接口:
this.$axios.get(`http://127.0.0.1:3000/api/user/add`,{name=this.name,age=this.age`})
等号后面的name和age是你从表单里得到的数据,然后保存到了data里面,然后从data里面拿出来
在后端进行接收:
router.post('/add',(req,res)=>{ let name = req.body.name; let age = req.body.age; })
注:这里接收时用body
进行接收,是post
$router.push
réalise le saut avec les paramètres🎜rrreee🎜🎜Remarque : lors du saut pour passer des paramètres, le chemin
est suivi de deux guillemets doubles ou de guillemets simples, et utilisez le forme de ${}
pour transmettre les paramètres requis🎜🎜🎜Recevez-le dans le sous-composant🎜rrreee🎜🎜Remarque : Il s'agit de route
, au lieu de router code>🎜🎜<hr>🎜Si vous utilisez le <code>name
dans l'attribut de routage pour déterminer l'itinéraire correspondant pour passer les paramètres, vous devez faire ceci : 🎜🎜La configuration de l'itinéraire correspondant : 🎜rrreee🎜 Sauter avec les paramètres : 🎜rrreee🎜🎜 Remarque : /:id
ne peut pas être utilisé pour transmettre des paramètres ici, car params
a été utilisé dans le composant parent. Les paramètres sont transportés. 🎜🎜🎜Paramètres reçus dans le sous-composant : 🎜rrreee🎜🎜Encore une fois, c'est route
, pas router
🎜🎜🎜🎜🎜 Utiliser params
pour transmettre les paramètres, utilisez l'attribut name
pour correspondre au chemin de saut, similaire à la soumission post
, les paramètres n'apparaîtront pas dans le chemin de saut. 🎜🎜🎜requête
🎜🎜🎜 est utilisée ici puis reçue dans le sous-composant : 🎜rrreee🎜🎜Remarque : Les noms des paramètres doivent être cohérents lors du passage. Lors de la réception, n'utilisez pas params
. Utilisez query
pour recevoir. code > Passer les paramètres, utilisez l'attribut path
pour correspondre au chemin de saut, similaire à la soumission get
, les paramètres sont affichés dans le chemin. 🎜🎜🎜requête
ci-dessus, mais c'est plus facile de cette façon🎜🎜🎜Remarque : il est entouré de deux guillemets, suivis du ? signez au lieu de /🎜🎜🎜🎜 De cette façon, plusieurs valeurs peuvent être transmises dans la barre d'adresse à la fois, et l'esperluette est utilisée pour les connecter. Il s'agit d'une requête get
🎜🎜🎜. 🎜Parce que la barre d'adresse du navigateur a une limite de longueur, donc s'il y a trop de paramètres, il n'est pas recommandé d'utiliser cette méthode pour recevoir dans le backend : 🎜rrreee🎜🎜Remarque : n'ajoutez rien après /delete
ici, utilisez lors de la réception de Recevoir via requête
🎜🎜🎜🎜Utilisez cette méthode pour transmettre la valeur, qui sera également affichée dans la barre d'adresse🎜Exemple de lien dans la barre d'adresse : http:/ /127.0.0.1:3000/api/user/delete ?name=zhangsan&age=10🎜🎜params code> pour transmettre les paramètres, vous devez utiliser <code>name
L'attribut pour correspondre au chemin de saut
query
pour transmettre les paramètres, assurez-vous d'utiliser l'attribut path
pour correspondre au chemin de sautbody
pour recevoir lors de la réception ici, qui est une demande post
🎜🎜Généralement, lorsque nous souhaitons soumettre des données au serveur, nous utilisons la requête post
. Cette méthode de requête est sécurisée. Si vous utilisez cette méthode, les données ne seront pas affichées dans la barre d'adresse.
Recommandations associées : "Tutoriel vue.js"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!