文本,展现到文章的面前,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>

效果:点击之后

到了显示页面

相关文章
|
9天前
|
前端开发 NoSQL 数据库
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
|
3天前
|
前端开发 JavaScript PHP
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
|
3天前
|
JavaScript 前端开发 数据安全/隐私保护
【vue】 前端vue2 全局水印效果
【vue】 前端vue2 全局水印效果
6 0
|
3天前
|
JavaScript 前端开发 数据安全/隐私保护
vue 前端 邮箱、密码、手机号码等输入验证规则
vue 前端 邮箱、密码、手机号码等输入验证规则
12 0
|
3天前
|
前端开发 JavaScript
Vue前端渲染blob二进制对象图片的方法
Vue前端渲染blob二进制对象图片的方法
9 0
|
3天前
|
前端开发
后端一次返回大量数据,前端做分页处理
后端一次返回大量数据,前端做分页处理
6 0
|
3天前
|
JavaScript 前端开发
【vue】 接口返回的preview是张图片,前端如何渲染
【vue】 接口返回的preview是张图片,前端如何渲染
8 0
|
3天前
|
前端开发 JavaScript Java
【vue】 前端 基于 vue-simple-uploader 实现大文件断点续传和分片上传
【vue】 前端 基于 vue-simple-uploader 实现大文件断点续传和分片上传
13 0
|
9天前
|
JavaScript 前端开发
前端框架原理自测题:根据 JSX / Vue 模板写出 render 函数 / VNode
前端框架原理自测题:根据 JSX / Vue 模板写出 render 函数 / VNode
9 0
|
9天前
|
前端开发 JavaScript 应用服务中间件
windows server + iis 部署若伊前端vue项目
5,配置url重写规则(重写后端请求) 注:如果没有Application Request Routing Cachefourcloudbdueclaim和URL重写,则是第二部的那两个插件没装上 打开iis,点击计算机->点击Application Request Routing Cache -> 打开功能
36 0

相关实验场景

更多