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

政府网站管理推进集约建设个人怎么做免费百度推广

政府网站管理推进集约建设,个人怎么做免费百度推广,swoole怎么做直播网站,企业管理培训课程班目录 一. 路由监听方式: 通过 watch 进行监听 1. 监听路由从哪儿来到哪儿去 2. 监听路由变化获取新老路由信息 3. 监听路由变化触发方法 4. 监听路由的 path 变化 5. 监听路由的 path 变化, 使用handler函数 6. 监听路由的 path 变化,触发method…

目录

一. 路由监听方式: 通过 watch 进行监听

1. 监听路由从哪儿来到哪儿去

2. 监听路由变化获取新老路由信息

3.  监听路由变化触发方法

4. 监听路由的 path 变化

5. 监听路由的 path 变化, 使用handler函数

6. 监听路由的 path 变化,触发methods里的方法 

二. 路由监听方式:key是用来阻止“复用”的

三. 路由监听方式:通过vue-router的钩子函数

1. 组件内监听

2. 全局监听路由

🔽 参考资料


vue页面开发中,我们经常需要根据路由的变化去实现一些操作,那么vue.js中如何监听路由的变化呢?监听路由变化的方法都有哪些?这篇文章主要介绍了vue监听路由变化的几种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 

——👇 vue中路由参数的变化监听,这里总结了常用的几种方式 👇——

一. 路由监听方式: 通过 watch 进行监听

1. 监听路由从哪儿来到哪儿去

返回 “从哪里来” 和 “哪里去” 的路由信息

// 方式1、监听路由 $route 变化
export default{watch: { // 监听,当路由发生变化的时候执行$route(to, from){console.log('路由变化了')console.log('当前页面路由:' + to);console.log('上一个路由:' + from);// console.log(from.path); // 从哪来// console.log(to.path); // 到哪去},}
}

2. 监听路由变化获取新老路由信息

返回 “新” “老” 路由信息

// 方式2、监听路由 $route 变化, 使用handler函数
export default{watch: { // 监听,当路由发生变化的时候执行'$route': { // $route可以用引号,也可以不用引号handler(to, from){console.log('路由变化了')console.log('当前页面路由:' + to); //新路由信息console.log('上一个路由:' + from); //老路由信息},deep: true, // 深度观察监听immediate: true, // 第一次初始化渲染就可以监听到}}
}

如果我们需要在最初绑定值的时侯,也执行监听函数,则就需要用到immediate属性。

✔️ 当设置immediate属性为true时,无论值是否发生改变,时刻都会监听;

✔️ 当设置immediate属性为false时,常规用法,只有值发生改变才会监听。

参考:Vue中watch(监听器)的用法详解(通俗易懂,简单明了)


3.  监听路由变化触发方法

// 方式3、监听路由 $route 变化,触发methods里的方法
export default{watch: { // 监听,当路由发生变化的时候执行'$route':'getPath'},methods: {getPath(){console.log(this.$route.path);}}}

4. 监听路由的 path 变化

// 方式4、监听路由的 path 变化
export default{watch: { // 监听,当路由发生变化的时候执行'$route.path'(toPath, fromPath){console.log('路由变化了')console.log('当前页面路由地址:' + toPath)console.log('上一个路由地址:' + fromPath)},}
}

5. 监听路由的 path 变化, 使用handler函数

// 方式5、监听路由的 path 变化, 使用handler函数
export default{watch: { // 监听,当路由发生变化的时候执行'$route.path': {handler(toPath, fromPath){console.log('路由变化了')console.log('当前页面路由地址:' + toPath)console.log('上一个路由地址:' + fromPath)},deep: true, // 深度监听immediate: true, // 第一次初始化渲染就可以监听到}}
}

6. 监听路由的 path 变化,触发methods里的方法 

// 方式6、监听路由的 path 变化,触发methods里的方法
export default{watch: { // 监听,当路由发生变化的时候执行'$route.path': 'getpath'},methods: {getpath(){console.log('路由变化了')}}
}

二. 路由监听方式:key是用来阻止“复用”的

Vue 为你提供了一种方式来声明“这两个元素是完全独立的——不要复用它们”。只需添加一个具有唯一值的 key 属性即可(Vue文档原话)

<router-view :key="key"></router-view>
computed: {key(){return this.$route.name !== undefined? this.$route.name +new Date(): this.$route +new Date()}
}

使用computed属性和Date()可以保证每一次的key都是不同的,这样就可以如愿刷新数据了。

三. 路由监听方式:通过vue-router的钩子函数

1. 组件内监听

❓ 如何在组件中监听路由参数的变化?❓

当使用路由参数时,例如从 /user/foo 导航到 /user/bar,原来的组件实例会被复用。

因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩子不会再被调用。

那如果我们要在组件中监听路由参数的变化,就只能通过watch (监测变化) $route 对象,或使用 beforeRouteUpdate 的组件内守卫。

方式一: 通过watch 监听 $route
 

const User = {template: '...',watch: {$route(to, from) {// 对路由变化作出响应...}}
}

方式二:通过组件内的导航守卫

beforeRouteUpdate ,(和created(){}生命周期函数同级别)

const User = {template: '...',beforeRouteUpdate(to, from, next) {// react to route changes...// don't forget to call next()}
}

⏬ 通过vue-router的组件内钩子函数beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave进行监听

示例1:

export default{// 监听,当路由发生变化的时候执行beforeRouteEnter(to, from, next){// 在渲染该组件的对应路由被确认前调用这个钩子,// 不!能!获取组件实例 `this`// 因为当钩子执行前(也就是说,我们使用的是进入路由之前的钩子),那时组件实例还没被创建,所以不能获取this,自然这里就不能使用thisconsole.log(this) // 结果为:undefinedconsole.log('beforeRouteEnter')next()},// 监听,当路由发生变化的时候执行beforeRouteUpdate(to, from, next){// 在当前路由改变,但是该组件被复用时调用// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。// 可以访问组件实例 `this`console.log(this) // 可以访问thisconsole.log('beforeRouteUpdate')next()},// 监听,当路由发生变化的时候执行beforeRouteLeave(to, from, next){// 导航离开当前路由的时候被调用,this可以被访问到console.log(this) // 可以访问组件实例 `this`console.log('beforeRouteLeave')next()},
}

示例2: 

<script>// 引入 Tabbar组件import mTabbar from './components/Tabbar'import mTabbarItem from './components/TabbarItem'// 引入 vuex 的两个方法import {mapGetters, mapActions} from 'vuex'export default {name: 'app',// 计算属性computed:mapGetters([// 从 getters 中获取值'tabbarShow']),// 监听,当路由发生变化的时候执行watch:{$route(to,from){if(to.path == '/' || to.path == '/Prisoner' || to.path == '/Goods' ||to.path == '/Time' || to.path == '/Mine'){/*** $store来自Store对象* dispatch 向 actions 发起请求*/this.$store.dispatch('showTabBar');}else{this.$store.dispatch('hideTabBar');}}},beforeRouteEnter (to, from, next) {// 在渲染该组件的对应路由被 confirm 前调用// 不!能!获取组件实例 `this`// 因为当钩子执行前,组件实例还没被创建},beforeRouteUpdate (to, from, next) {// 在当前路由改变,但是该组件被复用时调用// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。// 可以访问组件实例 `this`},beforeRouteLeave (to, from, next) {// 导航离开该组件的对应路由时调用// 可以访问组件实例 `this`},components:{mTabbar,mTabbarItem},data() {return {select:"Building"}}}
</script>

2. 全局监听路由

⏬ 通过vue-router的全局钩子函数beforeEach——this.$router.beforeEach

// 方式1、在App.vue的create中进行全局路由监听
export default  {name:  'App',created() {this.$router.beforeEach((to, from, next) => {console.log(to);console.log(from);next()})}
}
// 方式2、在路由文件(/router/index.js)中进行全局路由监听
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)let routes = [{path: '/login',component: resolve => require(['@/views/login'], resolve),},
]let router = new Router({mode: 'history', // 去掉 url 中的 #scrollBehavior: () => ({ y: 0 }),base: process.env.VUE_APP_BASE_DOMAIN,routes,
})router.beforeEach((to, from, next) => {console.log(to);console.log(from);next()
})export {routesrouter
}

🔽 参考资料

  • Vue监听路由变化的几种方式小结
  • Vue.js怎么监听路由变化
  • Vue路由监听的方式
  • Vue几种监听路由变化的方式

http://www.dinnco.com/news/40231.html

相关文章:

  • 软件设计大赛seo关键词排名优化联系方式
  • 深圳网站优化运营完整的网页设计代码
  • 百度灰色关键词排名seo引擎优化专员
  • 网站开发从入门到精通注册网站在哪里注册
  • 怎么开通个人网站无货源电商怎么做
  • 响应式网站404页面怎么做游戏推广工作好做吗
  • 武汉网站seo诊断百度官网认证价格
  • 网站开发常用小图片网站seo优化心得
  • 网站模板佳好乐云seo拉新推广怎么做代理
  • 外贸网站 费用企业建站 平台
  • 有哪些商业网站重庆网页优化seo
  • 出口做谷歌网站最好的网络推广方式
  • 2017优秀网站设计欣赏本地推广平台有哪些
  • 有免费做推广的网站吗山东关键词网络推广
  • 本地企业网站建设模板北京优化靠谱的公司
  • 新疆做网站的公司网站关键词收录查询
  • 一个新手如何做网站短链接生成网址
  • 网站代运营协议营销软文范例
  • qq小程序游戏入口win7优化大师官网
  • 用什么做网站后台邯郸网站建设优化
  • 江西住房与城乡建设委员会网站宁波 seo排名公司
  • 网站备案和不备案的区别贵阳百度seo点击软件
  • .net 微信网站开发网站运营主要做什么
  • 柳州企业网站建设网页广告怎么做
  • 单页营销网站后台2345网址导航桌面版
  • 揭阳网站建设方案托管地推拉新app推广平台
  • free theme wordpress软件排名优化
  • 网站开发吗和APP软件一样吗百度霸屏推广多少钱一个月
  • 湖南网站推广哪家专业深圳营销型网站设计公司
  • 广州市公需课在哪个网站可以做深圳市昊客网络科技有限公司