当前位置: 首页 > 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 漏洞实践:端口扫描与任意文件读取
  • 一周人物|何子彦任职光州双年展,陈意心讲述五原路往事
  • 马上评|比起奇葩论文,更可怕的是“水刊”灰产
  • 上海畅通“外转内”,外贸优品成“香饽饽”
  • 听炮检书:柳诒徵1927年的选择
  • 黔西市游船倾覆事故发生后,贵州省气象局进入特别工作状态
  • 三亚回应“游客骑摩托艇出海遇暴雨”:未失联,已引导申请先行赔付