小编bla*_*nry的帖子

Vue Router beforeEnter 与 beforeEach

我正在尝试将未登录的用户从所有页面重定向到/login. 我尝试过,但当用户使用直接 url(如, beforeEach())输入网站时,它不会触发。/home/event

Per-Route GuardbeforeEnter()工作得很好,因为一旦用户登陆该特定页面,它就会触发。但是,它要求我添加beforeEnter()每条路线。

我正在寻找一种方法来beforeEnter()在路由器上的几乎每个页面(甚至在动态页面上)复制该内容,未登录的用户将被重定向到/login.

当用户使用直接 url 输入时,此功能有效/home

routes: [
  {
    path: '/home',
    name: 'home',
    beforeEnter(to, from, next){
      if ( to.name !== 'login' && !this.isloggedin ){
         next({
           path: 'login',
           replace: true
         })
      } else {
         next()
      }
    }
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

此功能仅在用户进入站点并更改路线后才有效

vm.$router.beforeEach((to, from, next)=>{
  if ( to.name !== 'login' && !this.isloggedin ){
    next({
      path: 'login',
      replace: true
    })
  } else {
    next(); …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-router vue-component vuejs2

8
推荐指数
1
解决办法
4万
查看次数

如何在输入的 v 模型上使用 pinia 存储 getter?

在我的应用程序中,我正在努力存储用户表单响应。我创建了 pinia 商店并创建了每个表单对象。使用这个存储到我的组件中并将该存储的 getter 函数传递到变量中,

我将这个变量用作 v 模型。给出输入后也不会返回任何内容。我也没有收到任何错误。我是否遵循了任何错误的方法?

用户存储.js

    import { defineStore } from 'pinia';
    
    export const userResponses = {
      formsResponses: {
        form1: {
          input1: '',
        },
      },
    };
    
    export default defineStore('userStore', {
      state() { return userResponses; },
    
      getters: {
        getFormsInput: (state) => state.formsResponses.form1,
      },
      actions: {
        setFormsResponses(formResponses) {
          this.formsResponses.form1 = formResponses;
        },
      },
    });
Run Code Online (Sandbox Code Playgroud)

Form1.vue

  <template>
    <input type="text" name="input_form" v-model="input"/>
    <button type="Primary" @click="submit">submit</button>
  </template>
    
    <script setup>
    import { computed, ref } from 'vue';
    import useUserStore from '@/store/userStore';
    
    
    const userStore …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vuejs3 pinia

6
推荐指数
1
解决办法
6392
查看次数

将css类包装为Hashtag(#)内容和At(@)内容

我正在寻找一种jQuery方法来查找所有hashtag(#)和at(@)的内容后跟.最后用css类包装它们.

类包装以"#"或"@"开头,并在下面的任何白色结束之前结束.句子中会有多个#和@.

*{
font-family: sans-serif;
}

.at{
background-color: #ffcccb;
color: #bf2025;
padding: 1px 3px;
border-radius: 3px
}

.hash{
background-color: #9bedff;
color: #26477e;
padding: 1px 3px;
border-radius: 3px
}
Run Code Online (Sandbox Code Playgroud)
original content:
<ul>
<li>Phone call @Mary #group-project</li>
<li>Buy food and drinks #BBQ</li>
<li>Discard old computer #home #computer</li>
</ul>

ultimate goal:
<ul>
<li>Phone call <span class="at">@Mary</span> <span class="hash">#group-project</span></li>
<li>Buy food and drinks <span class="hash">#BBQ</span></li>
<li>Discard old computer <span class="hash">#home</span> <span class="hash">#computer</span></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery

-3
推荐指数
1
解决办法
108
查看次数

标签 统计

javascript ×3

vue.js ×2

css ×1

html ×1

jquery ×1

pinia ×1

vue-component ×1

vue-router ×1

vuejs2 ×1

vuejs3 ×1