laravel中引入使用vue


1、引入Vue.js

開始學習使用 Vue.js 之前先要將其引入我們的 Laravel 項目,這里我選擇最簡單的方式,直接下載對應的開放版本JS文件(http://vuejs.org/js/vue.js),然后將下載的vue.js文件放置到public目錄下的js目錄中(如果沒有js目錄則創建之)。

接下來就可以開啟Vue.js學習之旅了。

2、Hello World

和任何其他語言/框架學習一樣,讓我們從打印Hello World開始,與此同時我們將學習Vue的功能特性之一:數據綁定。

我們以Laravel提供的視圖文件welcome.blade.php作為演示文件,開始之前,先在</html>之前引入vue.js

<script type="text/javascript" src="{{asset('js/vue.js')}}"></script>

然后我們編輯welcome.blade.php文件內容如下:

<div class="container">
     <div class="content">
         <div class="title">
             <p>@{{ message }}</p>
         </div>
     </div>
 </div>

同時編寫js部分代碼:

<script type="text/javascript">
      new Vue({
         el: '.title',
         data: {
             message: 'Hello Laravel!'
         }
     })
 </script>

這樣整個代碼看上去應該是這樣:

vue.js data binding

在瀏覽器中訪問項目首頁,顯示如下:
vue.js hello world

3、雙向綁定

此外,Vue.js還支持雙向數據綁定,我們編輯HTML部分代碼如下:

<div class="container">
     <div class="content">
         <div class="title">
             <p>@{{ message }}</p>
             <input v-model="message">
         </div>
     </div>
 </div>

這樣,保存文件后,刷新瀏覽器頁面,會在Hello Laravel!下面顯示出input輸入框,並且輸入框內容也是Hello Laravel!
vue.js two-way binding

4、渲染列表

數組數據循環渲染列表可以這么做:

HTML代碼:

<div class="content">
    <div class="title">
        <ul>
            <li v-for="todo in todos">
            @{{ todo.text }}
            </li>
        </ul>
    </div>
</div>

JS代碼:

<script type="text/javascript">
    new Vue({
        el: '.title',
        data: {
            todos: [
                { text: 'Learn Laravel' },
                { text: 'Learn Vue.js' },
                { text: 'At LaravelAcademy.org' }
            ]
        }
    })
</script>

刷新頁面數據顯示如下:

Vue.js render list

5、處理用戶點擊

我們來簡單看一個用戶點擊按鈕事件。

HTML代碼:

<div class="content">
    <div class="title">
        <p>@{{ message }}</p>
        <button v-on:click="reverseMessage">反轉消息</button>
    </div>
</div>

JS代碼:

<script type="text/javascript">
    new Vue({
        el: '.title',
        data: {
            message: 'Hello Laravel!'
        },
        methods: {
            reverseMessage: function () {
                this.message = this.message.split('').reverse().join('')
            }
        }
    })
</script>

注:split()用於將字符串轉化為數組,reverse()用於顛倒數組中元素順序,join()用於將數組轉化為字符串。

刷新瀏覽器頁面,頁面顯示如下:

vue.js reverse message

點擊“反轉消息”按鈕,頁面顯示如下:

vue.js reverse message

6、綜合示例

好了,接下來我們通過一個例子來總結下本章節所有知識點。我們通過在輸入框輸入字符串,然后通過回車將輸入的字符串添加到展示列表。

HTML代碼:

<div class="content">
    <input v-model="newTodo" v-on:keyup.enter="addTodo">
    <ul>
        <li v-for="todo in todos">
            <span>@{{ todo.text }}</span>
            <button v-on:click="removeTodo($index)">X</button>
        </li>
    </ul>
</div>

JS代碼:

<script type="text/javascript">
    new Vue({
        el: '.content',
        data: {
            newTodo: '',
            todos: [
                { text: '新增todos' }
            ]
        },
        methods: {
            addTodo: function () {
                var text = this.newTodo.trim()
                if (text) {
                    this.todos.push({ text: text })
                    this.newTodo = ''
                }
            },
            removeTodo: function (index) {
                this.todos.splice(index, 1)
            }
        }
    })
</script>

刷新頁面,頁面顯示如下:

vue.js user input

點擊“新增todos”右側的“X”刪除該條目,然后在輸入框輸入字符串回車,新增的字符串會顯示在列表中:

vue.js user input


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM