「Php/laravel/laravel5/laravelmix/vue」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→example.vue定義場所) |
(→クリック処理など) |
||
(同じ利用者による、間の18版が非表示) | |||
行2: | 行2: | ||
laravel5.4以上にデフォで入ってるvueのexampleコンポーネントを表示 | laravel5.4以上にデフォで入ってるvueのexampleコンポーネントを表示 | ||
− | + | routes/web.php | |
− | + | Route::get('/vue1', function () { | |
− | + | return view('vue1'); | |
− | + | }); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | resources/views/vue1.blade.php | |
+ | <nowiki> | ||
+ | <!doctype html> | ||
+ | <html> | ||
+ | <head> | ||
+ | <meta charset="UTF-8"> | ||
+ | <title>Hello Vue</title> | ||
+ | <link rel="stylesheet" href="css/app.css"/> | ||
+ | <script type="text/javascript"> | ||
+ | window.Laravel = window.Laravel || {}; | ||
+ | window.Laravel.csrfToken = "{{csrf_token()}}"; | ||
+ | </script> | ||
+ | </head> | ||
+ | <body> | ||
+ | <div id="app"> | ||
+ | <example></example> | ||
+ | </div> | ||
+ | <script src="js/app.js"></script> | ||
+ | </body> | ||
+ | </html> | ||
+ | </nowiki> | ||
+ | |||
+ | "ttp://~/vue1"を表示し以下のように表示されれば成功 | ||
Example Component | Example Component | ||
I'm an example component! | I'm an example component! | ||
− | + | ||
+ | 出ない場合はapp.jsがvueのタグよりも下にあるか確認する | ||
+ | |||
==example.vue定義場所== | ==example.vue定義場所== | ||
resources/assets/js/app.js | resources/assets/js/app.js | ||
行31: | 行40: | ||
resources/assets/js/components/Example.vue | resources/assets/js/components/Example.vue | ||
− | <nowiki> | + | <nowiki> |
− | + | <template> | |
− | + | <div class="container"> | |
− | + | <div class="row"> | |
− | + | <div class="col-md-8 col-md-offset-2"> | |
− | + | <div class="panel panel-default"> | |
− | + | <div class="panel-heading">Example Component</div> | |
− | + | <div class="panel-body"> | |
− | + | I'm an example component! | |
− | + | </div> | |
− | + | </div> | |
− | + | </div> | |
− | + | </div> | |
− | + | </div> | |
− | + | </template> | |
− | + | <script> | |
− | + | export default { | |
− | + | mounted() { | |
− | + | console.log('Component mounted.') | |
− | + | } | |
− | + | } | |
− | </script> | + | </script> |
− | </nowiki> | + | </nowiki> |
+ | |||
+ | ==クリック処理など== | ||
+ | <nowiki><template> | ||
+ | <div class="container"> | ||
+ | <div class="row"> | ||
+ | <div class="col-md-8 col-md-offset-2"> | ||
+ | <div class="panel panel-default"> | ||
+ | <div class="panel-body"> | ||
+ | <input type="text" v-model="name" /> | ||
+ | {{ name }} | ||
+ | <p>{{ age }}</p> | ||
+ | <input type="button" @click="click1" /> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </div> | ||
+ | </template> | ||
+ | <script> | ||
+ | export default { | ||
+ | data() { | ||
+ | return { | ||
+ | name: 'taro', | ||
+ | age: 20 | ||
+ | } | ||
+ | }, | ||
+ | mounted() { | ||
+ | this.init() | ||
+ | }, | ||
+ | methods: { | ||
+ | init() { | ||
+ | this.age = 21 | ||
+ | }, | ||
+ | click1() { | ||
+ | this.name = 'jiro' | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </script> | ||
+ | <style lang='scss' scoped> | ||
+ | p { | ||
+ | font-size: 10px; | ||
+ | text-align: center; | ||
+ | } | ||
+ | </style></nowiki> | ||
==参照== | ==参照== | ||
http://blog.asial.co.jp/1496 | http://blog.asial.co.jp/1496 | ||
+ | |||
+ | ==vue基本について== | ||
+ | [[javascript/vue]] [ショートカット] を確認する |
2018年5月16日 (水) 12:42時点における最新版
vue動作確認
laravel5.4以上にデフォで入ってるvueのexampleコンポーネントを表示
routes/web.php
Route::get('/vue1', function () { return view('vue1'); });
resources/views/vue1.blade.php
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Hello Vue</title> <link rel="stylesheet" href="css/app.css"/> <script type="text/javascript"> window.Laravel = window.Laravel || {}; window.Laravel.csrfToken = "{{csrf_token()}}"; </script> </head> <body> <div id="app"> <example></example> </div> <script src="js/app.js"></script> </body> </html>
"ttp://~/vue1"を表示し以下のように表示されれば成功
Example Component I'm an example component!
出ない場合はapp.jsがvueのタグよりも下にあるか確認する
example.vue定義場所
resources/assets/js/app.js
Vue.component('example', require('./components/Example.vue'));
resources/assets/js/components/Example.vue
<template> <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">Example Component</div> <div class="panel-body"> I'm an example component! </div> </div> </div> </div> </div> </template> <script> export default { mounted() { console.log('Component mounted.') } } </script>
クリック処理など
<template> <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-body"> <input type="text" v-model="name" /> {{ name }} <p>{{ age }}</p> <input type="button" @click="click1" /> </div> </div> </div> </div> </div> </template> <script> export default { data() { return { name: 'taro', age: 20 } }, mounted() { this.init() }, methods: { init() { this.age = 21 }, click1() { this.name = 'jiro' } } } </script> <style lang='scss' scoped> p { font-size: 10px; text-align: center; } </style>
参照
vue基本について
javascript/vue [ショートカット] を確認する