js 获取script参数方式

本文介绍了在JavaScript中如何获取从前端页面传递过来的参数,包括通过URL查询字符串和利用HTML script元素的data属性两种实现方式。重点强调了通过id读取data属性的方法,确保定义明确且易于理解。

需求:

在js中需要获取前面传过来的参数,比如当前的域名或者某种后台传递过来的值

实现方式:

第一种通过js后面传递参数如:demo.js?v=1.2

此种方式通过document.scripts获取其src值,然后正则读取,没有第二种好

第二种利用属性:

<script src="demo.js" type="text/javascript" data="yourpath"  id="basePathScript">
</script>

js中直接获取:

var basePath = document.getElementById('basePathScript').getAttribute('data');

 

优点:

定义明确通过js的id读取

在 Vue.js 中,可以通过 `this.$route.params` 和 `this.$route.query` 来获取路由参数和查询参数。这些参数通常在路由配置中定义,并在组件中进行访问以实现动态内容展示或逻辑控制。 ### 获取路由参数 1. 在定义路由时,可以通过 `path` 属性指定带有参数的路径,例如 `/user/:id`,其中 `:id` 是路由参数。一旦路由匹配成功,该参数将被存储在 `$route.params` 对象中。例如,如果导航到 `/user/123`,那么 `$route.params.id` 的值将是 `"123"` [^1]。 在组件中,可以直接通过 `this.$route.params.id` 访问这个参数 [^2]。例如: ```vue <template> <div> <p>用户ID: {{ userId }}</p> </div> </template> <script> export default { data() { return { userId: this.$route.params.id }; } }; </script> ``` ### 获取查询参数 除了路由参数,URL 中还可能包含查询参数(Query Parameters),例如 `/search?query=vue`。可以通过 `this.$route.query` 来获取这些参数,它返回一个包含所有查询参数的对象。例如: ```vue <template> <div> <p>查询关键词: {{ query }}</p> </div> </template> <script> export default { data() { return { query: this.$route.query.query }; } }; </script> ``` ### 动态响应路由参数变化 当路由参数发生变化但组件被复用时(例如从 `/user/123` 导航到 `/user/456`),需要监听 `$route` 的变化以更新组件状态。可以通过 `watch` 监听 `$route` 对象: ```vue <script> export default { watch: { '$route'(to, from) { // 处理路由变化,例如更新用户信息 this.userId = to.params.id; } }, data() { return { userId: this.$route.params.id }; } }; </script> ``` ### 使用 `props` 传递路由参数 另一种更清晰的方式是通过 `props` 将路由参数传递给组件。在路由配置中设置 `props: true`,这样组件可以直接通过 `props` 接收参数: ```javascript const routes = [ { path: '/user/:id', component: User, props: true } ]; ``` 然后在组件中声明 `props`: ```vue <script> export default { props: ['id'] }; </script> ``` 这样可以避免直接依赖 `$route`,使组件更容易测试和复用 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值