当前位置: 首页 > news >正文

Vue 路由传递参数 query、params

1、to的对象写法,绑定参数 

<template>
2  <ul>
3    <li v-for="m in messlist" :key="m.id">
4      <router-link :to="{ 
        //使用params时,这个路径必须用name及别名......name: 'xiangqing', 
        path: '/bbb/message/detail', 
        query: { id: m.id }}"> {{ m.title }}</router-link>
5    </li>
6  </ul>
7</template>

2、字符串路径写法

<template>
2  <ul>
3    <li v-for="m in messlist" :key="m.id">
4      <router-link :to="'/bbb/message/detail?id=' + m.id"> {{ m.title }}</router-link>
5    </li>
6  </ul>
7</template>

 3、接受页面接受参数

<template>
    <div>
        <!---------直接接受参数-------->
        id是:{{ $route.query.id }}
        id是:{{ $route.query.title }}
        ===================================
        <br>
        <!-----------监听参数--------->
        id是:{{ title }}
        id是:{{ id }}
    </div>
</template>
<script>
export default {
    name: 'Detail',
    data() {
        return {
            'id': '',
            'title':''
        }
    },
    mounted() {
        console.log(this.$route)
    },
    watch: {
        '$route.query': {
            handler(newQuery) {
                // 根据需要更新组件的状态
                console.log(newQuery.id)
                this.id = newQuery.id
                this.title = newQuery.title
                //也可以通过axios获取数据渲染
            },
            immediate: true, // 立即执行一次,确保在首次渲染时也能触发
            deep: true // 监听对象内部属性的变化
        }
      
    },
}
</script>

===========================params=====================================

<template>
    <div>
        <!---------直接接受参数-------->
        id是:{{ $route.query.id }}
        id是:{{ $route.query.title }}
        ===================================
        <br>
        <!-----------监听参数--------->
        id是:{{ title }}
        id是:{{ id }}
        ===================================
        <!---------直接接受参数-------->
        <br>
        params接受id是:{{ $route.params.id }}
        params接受id是:{{ $route.params.title }}
        ===================================
        <br>
    </div>
</template>
<script>
export default {
    name: 'Detail',
    data() {
        return {
            'id': '',
            'title':''
        }
    },
    mounted() {
        console.log(this.$route)
    },
    watch: {
        // '$route.query': {
        //     handler(newQuery) {
        //         // 根据需要更新组件的状态
        //         console.log(newQuery.id)
        //         this.id = newQuery.id
        //         this.title = newQuery.title
        //     },
        //     immediate: true, // 立即执行一次,确保在首次渲染时也能触发
        //     deep: true // 监听对象内部属性的变化
        // }
        '$route.params': {
            handler(newQuery) {
                // 根据需要更新组件的状态
                console.log(newQuery.id)
                this.id = newQuery.id
                this.title = newQuery.title
            },
            immediate: true, // 立即执行一次,确保在首次渲染时也能触发
            deep: true // 监听对象内部属性的变化
        }
      
    },
}
</script>

相关文章:

  • 鸿蒙轻内核M核源码分析系列二十 Newlib C
  • 文化融合,市场共赢:品牌海外推广中的符号与象征策略
  • Elixir学习笔记——二进制、字符串和字符列表
  • 《计算机组成原理》期末复习题节选
  • SAP PP学习笔记20 - 复习总结一下MTS,MTO,ATO的各种生产策略
  • MySQL实现同一语句中先查后改
  • Stable diffusion的SDXL模型,针不错!(含实操)
  • Python爬取城市空气质量数据
  • 软件测试--第十章 测试需求分析与测试计划
  • Python pandas openpyxl excel合并单元格,设置边框,背景色
  • ARM32开发--PWM通道输出
  • python基础 002 - 1 基础语法
  • pytest+requests+allure自动化测试接入Jenkins学习
  • Python语言在金融领域的应用探索
  • 第7章 用户输入和 while 循环
  • 调用华为API实现语音合成
  • 常见数据编码方式
  • C/C++ 进阶(6)红黑树
  • day35|1005.K次取反后最大化的数组和 134. 加油站135. 分发糖果
  • SSRF 漏洞实践:端口扫描与任意文件读取
  • 网站整站出售/长沙全网推广
  • 设计网站下载/网站设计制作公司
  • 群晖nas可以做网站服务器/中国网民博客 seo
  • 泰州seo顾问服务/百度seo推广软件
  • 外贸网页制作公司哪家好/游戏优化大师有用吗
  • 自己做的网站 怎么放大文件/30个免费货源网站