Laravel blade template でVueを使うときの注意 稀なエラー

blade templateで@section('hoge')を設定したのち、

vue側のapp.jsでvueをinjectするタグを以下のように同じ<hoge>に設定すると…

Vue.component('hoge', require('./componets/Hoge.vue'));

 

エラー(コンソールにもコンパイル時もエラーが表示されない)でvueが表示されない。

Vue.component('foo', require('./componets/Hoge.vue'));

vue側のタグを変えると正常動作する。

Laravel5.4 ORM + Traits + Controller + Routes

level 1.

routes.phpに全部記述

 

leavel 2.

controllerを使ってrouteへの記述量を減らす

 

level 3.

Eloquent ORMを使ってroute、controllerの記述量を減らす

 

level 4.

ORMにTraitsを付与してORMの記述量を分散  cati #9

 

TraitsやORMへの記述はcontroller側にも書けるがTraitsへの記述はfunction化してreusableなので複数使う場合はTraits化が望ましい。

またTraitsやORMのfunctionはmethod chainやORM向けのmethodを使用できる点で優れる。

 

cati#10

 

参考:

monteecristoo.hatenablog.com

blog.toshimaru.net

Vue-infinite-loading error: [Vue warn]: Property or method "recommend" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option.

Vue-infinite-loadingでv-forのpropertyにエラーが出る場合

 

 <p v-for="(recommend, key) in list">

  <div id="recommend">

    <span v-text="recommend"></span>

  </div>

</p>

<infinite-loading :on-infinite="onInfinite" ref="infiniteLoading"></infinite-loading>

余分な<div>があるとエラーが出る。

 

解決方法:

 <p v-for="(recommend, key) in list">

   <span v-text="recommend"></span>

</p>

<infinite-loading :on-infinite="onInfinite" ref="infiniteLoading"></infinite-loading>

vue-router with dynamic router-link

vue-routerのrouter-linkを使ってdynamicなlinkの生成

 方法①

@app.js

const routes = [

  { path: '/user/:userName', component: Profile,
    children: [
      {
        path: '', component: Activity,
      },

      {  
        path: 'follow', component: Follows
      },

      {
        path: 'activity', component: Activity
      }  
    ]
  },

 

@componet

<router-link :to="'/user/' + user.name"><router-link>

 

方法② named-routerを使う

@app.js

const routes = [

  { path: '/user/:userName?', component: Profile,
    children: [
      {
        path: '', component: Activity, name: 'activity'
      },

      {  
        path: 'follow', component: Follows
      },

      {
        path: 'activity', component: Activity
      }  
    ]
  },

 

@componet

<router-link :to= "{ name: 'activity', params: { userName: user.name } }">
</router-link>

 

router-linkのparamのuserNameは通常定数にしないとchromeのコンソール上下記のエラーが出る

app.js:65434 [vue-router] missing param for named route "activity": Expected "userName" to be defined

これを消すにはapp.js側のparameterである:userNameに?を付けてオプショナル扱いにする。

方法②には問題点がある。

/user/userNameでデフォルトでcomponentのActivity.vueを表示させたい場合、

child pathの''にActivityを登録するため

このrouter-linkを辿ると/user/userName/と末尾に/が余分についてしまう。

UI Elements

www.nxworld.net

blog.8bit.co.jp

tympanus.net

Bootstrapで使えるjQueryプラグイン | ENTEREAL

 

metismenu

github.com

.metismenuが二つあると片方がバグる

 display: none してもダメ