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

效果:点击之后

到了显示页面

相关文章
|
1月前
|
存储 监控 安全
前端框架的数据驱动方式如何保证数据的安全性?
总之,前端框架的数据驱动方式需要综合运用多种手段来保证数据的安全性。从传输、存储、访问控制到防范攻击等各个方面进行全面考虑和实施,以确保用户数据的安全可靠。同时,不断加强安全管理和技术创新,以应对不断变化的安全挑战。
108 60
|
1月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
1月前
|
前端开发 数据安全/隐私保护
.自定义认证前端页面
.自定义认证前端页面
13 1
.自定义认证前端页面
|
1月前
|
前端开发 JavaScript 搜索推荐
前端懒加载:提升页面性能的关键技术
前端懒加载是一种优化网页加载速度的技术,通过延迟加载非首屏内容,减少初始加载时间,提高用户访问体验和页面性能。
|
1月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
47 5
|
1月前
|
监控 前端开发 jenkins
Jenkins 在前端项目持续部署中的应用,包括其原理、流程以及具体的实现方法
本文深入探讨了Jenkins在前端项目持续部署中的应用,涵盖其基本原理、流程及具体实现方法。首先介绍了Jenkins的基本概念及其在自动化任务中的作用,随后详细解析了从前端代码提交到生产环境部署的全过程,包括构建、测试、部署等关键步骤。最后,强调了持续部署中的代码质量控制、环境一致性、监控预警及安全管理等注意事项,旨在帮助开发者高效、安全地实施持续部署。
66 5
|
1月前
|
前端开发 安全 JavaScript
在阿里云快速启动Appsmith搭建前端页面
本文介绍了Appsmith的基本信息,并通过阿里云计算巢完成了Appsmith的快速部署,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解底层技术,只需要在控制台图形界面点击几下鼠标就可以快速部署并启动Appsmith,非技术同学也能轻松搞定。
|
1月前
|
前端开发 JavaScript 开发者
React与Vue:前端框架的巅峰对决与选择策略
【10月更文挑战第23天】React与Vue:前端框架的巅峰对决与选择策略
|
1月前
|
前端开发 JavaScript 数据管理
React与Vue:两大前端框架的较量与选择策略
【10月更文挑战第23天】React与Vue:两大前端框架的较量与选择策略
|
1月前
|
JavaScript 前端开发 搜索推荐
Vue的数据驱动视图与其他前端框架的数据驱动方式有何不同?
总的来说,Vue 的数据驱动视图在诸多方面展现出独特的优势,其与其他前端框架的数据驱动方式的不同之处主要体现在绑定方式、性能表现、触发机制、组件化结合、灵活性、语法表达以及与后端数据交互等方面。这些差异使得 Vue 在前端开发领域具有独特的地位和价值。

热门文章

最新文章