文本,展现到文章的面前,Vue结合v-for实现传参的方法,好的资料,Vue实现动态绑定,数据放到前端页面上

简介: 文本,展现到文章的面前,Vue结合v-for实现传参的方法,好的资料,Vue实现动态绑定,数据放到前端页面上

原文链接:

vue中的三种传递参数方法_vue button 传参-CSDN博客

<div class="shopLine" @click="goDetails(item.id)" v-for="item,index in cart">
<button @click="goThird">点击跳转第二种方式传参</button>
<button @click="goSi">点击跳转第三种方式传参</button>

在methods方法下

methods:{
    //也是path的方式来去传递动态路由参数
    //#/second/00001
    goDetails(isd){
      this.$router.push({
        path:'/second/'+isd
      })
    },
    goThird(){
      //第二种方式传参  不需要匹配路由中做配合
      //是用  路由的别名  name 来去做跳转
      //并且是用 params  来去传递参数
      //#/thrith
//    this.$router.push({
//      name:'Thrith',
//      params:{
//        pid:'123456'
//      }
//    })
      this.$router.push({
        path:'/thrith'
      })
    },
    //第三种方式 也是用  path 来去匹配相应的路由
    //传递参数 是用 query来去传递参数  
    //#/si?pid=1234567  和get请求传递参数 是一致
    goSi(){
      this.$router.push({
        path:'/si',
        query:{
          pid:'1234567'
        }
      })
    }
  }

在second , thrith , si ,页面取参数

second 页面

 //mounted 已经挂载/渲染完成后会自动调用这个函数  
  mounted(){
    //console.log('111')
    //在vue  提供了 this.$route.params.id  来去获取 动态路由传过来的参数
    //获取参数 id  意思  是路由配置中所写的参数 跟router index.js 中设置的名字是一样
    var id = this.$route.params.id;
    console.log(id);
    //http 请求 把 这个id  当做参数 向后台服务器 请求数据
    //拿到result
    //this.cart = result
     
  }

si 页面

//mounted 已经挂载/渲染完成后会自动调用这个函数  
  mounted(){
      var id = this.$route.query.pid;
      console.log(id);
     
  }

thrith 页面

//mounted 已经挂载/渲染完成后会自动调用这个函数  
  mounted(){
    //第二种方式传递的参数 和第一种方传递的参数  获取的时候  都是一致
    //第二种方式传递的参数 在刷新过后就不会存在了
    //这个方式的传递的参数 安全系数 就比较高
    //一般是用在  参数只能够使用一次的  接口  比如  支付
//    var id = this.$route.params.pid;
//  console.log(id);
     
  }

动态路由跳转到一个新的页面,第一步,建一个新的页面:

Vue-router,使用英文,来定义路由的参数项

第一步准备一个接收参数的页面

第二步 在vue-router中使用英文冒号:定义路由参数项

使用this.route.params.id获取动态路由传递过来的参数

前端点击跳转到的id页面,完整代码:

 
 
<template>
    <div v-html="code.code"></div>
  </template>
  
  <script>
  import axios from 'axios';
  import '@/css/common/normalize.min.css';
  import '@/css/common/style.css';
//   import '@/css/'
 
  import '@wangeditor/editor/dist/css/style.css' // 引入 css
  export default {
      data(){
          return {
              code: [],
              id: 2
          }
      },
      mounted(){
          var id = this.$route.params.id;
          axios.get('/code/selectById/' + id).then(res => {
          this.code = res.data.data
        })
        console.log(this.article)
      }
  }
  </script>
<style>
  
div {
  word-wrap: normal;
  font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace;
  -webkit-hyphens: none;
  hyphens: none;
  line-height: 1.5;
  margin: .5em 0;
  overflow: auto;
  padding: 1em;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  text-align: left;
  text-shadow: 0 1px #fff;
  white-space: pre;
  word-break: normal;
  word-spacing: normal;
}
 
div {
  background-color: var(--w-e-textarea-slight-bg-color);
  border: 1px solid var(--w-e-textarea-slight-border-color);
  border-radius: 4px 4px;
  display: block;
  font-size: 14px;
  padding: 10px;
  text-indent: 0;
}
div {
  background-color: var(--w-e-textarea-slight-bg-color);
  border-radius: 3px;
  font-family: monospace;
  padding: 3px;
}
</style>

路由写法:

  {
    path: '/code/:id',
    component: () => import('@/views/until/code/codeContainer')
  },

点击想要跳转的代码:

 <div class="container">
      <div class="scroll-container clearfix" @click="goDetails(item.id)" style="height: 135px;margin: 0 700px 0 325px;" v-for="item in code" :key="item.id">
        <div class="left_Container">
          <div style="font-size: 18px;padding: 0 0 90px 0;text-align: left;" >{{ item.title}}</div>
          <div style="padding: 0 0 0 0;text-align: left;font-size: 14px;">
            {{ item.category}}<span style="font-size: 12px;margin-left: 10px;">{{ item.introduce }}</span>
          </div>
        </div>
        <div class="right_Container" style="padding: 10px 0 0 0;">
          <img src="@/assets/login.png" alt="" style="width: 158px;height: 112px;">
        </div>
      </div>
    </div>
  </div>
</template>
<!-- 
<script setup>
 
import editor from 'monaco-editor'
const dom = ref("")
const initEditor = () => {
        // 初始化编辑器,确保dom已经渲染
        editor.value = monaco.editor.create(dom.value, {
            theme: 'vs-dark', //官方自带三种主题vs, hc-black, or vs-dark
            value: dataList.contentValue, //编辑器初始显示文字
            readOnly: false,
            automaticLayout: true,
            language: "javascript",
            folding: true,  //代码折叠
            roundedSelection: false, // 右侧不显示编辑器预览框
            autoIndent: true // 自动缩进
        });
    }
</script> -->
<script>
import axios from 'axios';
export default {
      data(){
          return {
              code: [],
              id: 2,
              url: "http://localhost:9090/code",
          }
      },
      methods:{
        goDetails(id){
          this.$router.push({
            path: '/code/' + id
          })
        }
      },
      mounted(){
          axios.post(this.url + "/list").then(res => {
          this.code = res.data.data
        })
      }
  }
 
</script>
 
<style>
.right_Container {
  background-size: 12px !important; 
}
  * {
  margin: 0;
  padding: 0;
}
 
ul li {
  font-family: 黑体;
  list-style: none;
  font-weight: 600;
}
 
.clearfix:after {
  content: "";
  display: block;
  clear: both;
}
 
.header {
  width: 100%;
  height: 100%;
}
 
 
.logo {
  height: 60px;
  background-color: #fff;
  padding: 12px 0 0 38px;
 
}
 
.logo a {
  display: block;
  width: 320px;
  height: 60px;
  background: url('@/assets/tuku/logo.png') no-repeat;
  text-decoration: none;
}
 
.logo h1 a div {
  font-family: "黑体";
  font-size: 20px;
  padding-top: 7px;
  margin-right: 60px;
  font-style: italic;
}
 
.blueStyle {
  background: linear-gradient(135deg, #2564b8 56%, #ffffff 84%);
  /*设置渐变的方向从左到右 颜色从ff0000到ffff00*/
  /*设置渐变的方向从左到右 颜色从ff0000到ffff00*/
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
 
.search {
  float: right;
  margin-right: 430px;
  margin-top: 10px;
  border-radius: 50px;
}
 
input:focus {
  outline: none;
}
 
.logo {
  float: left;
}
.search-style {
  display: inline-block;
  padding: 0px 0 1px 10px;
  border-radius: 18px 0 0 18px;
  width: 484px;
  height: 40px;
  box-sizing: border-box;
  line-height: inherit;
  border: 2px solid #418df5;
  border-right: none;
  font-size: 14px;
}
.btn {
  display: inline-block;
  color: #fff;
  font-style: italic;
  width: 105px;
  border: 2px solid #418DF5;
  line-height: 37px;
  font-weight: 300;
  background-color: #418DF5;
  border-radius: 0 16px 16px 0;
}
.classify {
  padding-left: 40px;
}
 
.classify ul li {
  float: left;
  font-size: 17px;
  font-style: italic;
  padding-right: 28px;
}
 
.userlabel {
  margin-bottom: 22px;
  padding: 25px 0 0 38px;
}
 
.userlabel ul li {
  float: left;
  font-size: 16px;
  padding: 0 40px 25px 0;
  font-style: italic;
}
 
.left_Container{
  float: left;
}
.right_Container {
  float: right;
}
.clearfix:after {content: "";display: block;clear: both;}
</style>

效果:点击之后

到了显示页面

相关文章
|
5天前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(完结)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!(完结)
14 0
|
4天前
|
开发框架 前端开发 Java
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
【8月更文挑战第12天】SpringBootWeb极速入门-实现一个简单的web页面01
15 3
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
|
6天前
|
前端开发 JavaScript API
前端框架Vue------>第二天学习(1)插槽
这篇文章介绍了Vue框架中插槽(slot)的概念和用法,以及如何在组件中使用自定义事件进行父子组件间的通信。
前端框架Vue------>第二天学习(1)插槽
|
6天前
|
JSON 前端开发 JavaScript
前端框架Vue------>第一天学习(3)
这篇文章是关于使用Vue框架进行前端开发的教程,重点介绍了如何使用Axios实现异步通信和表单输入的双向数据绑定。
前端框架Vue------>第一天学习(3)
|
6天前
|
前端开发 JavaScript API
前端框架Vue------>第一天学习(2) v-if
这篇文章介绍了Vue框架中条件渲染的用法,包括`v-if`、`v-else-if`指令的使用,以及列表渲染和事件监听的基本实现。
前端框架Vue------>第一天学习(2) v-if
|
4天前
|
前端开发 JavaScript Java
SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置自己定义、图片可以在前端回显(一))
这篇文章详细介绍了在SpringBoot+Vue项目中实现表单和图片上传的完整流程,包括前端上传、后端接口处理、数据库保存图片路径,以及前端图片回显的方法,同时探讨了图片资源映射、token验证、过滤器配置等相关问题。
|
4天前
|
前端开发 数据库
SpringBoot+Vue+token实现(表单+图片)上传、图片地址保存到数据库。上传图片保存位置到项目中的静态资源下、图片可以在前端回显(二))
这篇文章是关于如何在SpringBoot+Vue+token的环境下实现表单和图片上传的优化篇,主要改进是将图片保存位置从磁盘指定位置改为项目中的静态资源目录,使得图片资源可以跨环境访问,并在前端正确回显。
|
5天前
|
前端开发 Java 编译器
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
【8月更文挑战第11天】java基础练习缺少项目?看这篇文章就够了!
11 0
【前端学java】java基础练习缺少项目?看这篇文章就够了!(17)
|
5天前
|
存储 前端开发 JavaScript
Springboot+Vue实现将图片和表单一起提交到后端,同时将图片地址保存到数据库、再次将存储的图片展示到前端vue页面
本文介绍了使用Springboot后端和Vue前端实现图片与表单数据一起提交到后端,并保存图片地址到数据库,然后展示存储的图片到前端Vue页面的完整流程。
Springboot+Vue实现将图片和表单一起提交到后端,同时将图片地址保存到数据库、再次将存储的图片展示到前端vue页面
|
6天前
|
前端开发 JavaScript
前端框架Vue------>第三天学习(1)
这篇文章介绍了Vue框架的组件基础和计算属性的概念,通过示例代码展示了如何定义可复用的Vue组件和使用计算属性来声明性地描述依赖其他值的数据。