2019-12-02Vue在java項目中的使用——Vue基礎(chǔ)(復制資料)

本文原文鏈接:https://blog.csdn.net/Jack__iT/article/details/88213177

什么是MVVM框架?

View---ViewModel---Model之間的通訊

View:視圖,dom

ViewModel:通訊,觀察者,能監(jiān)聽到數(shù)據(jù)的變化

Model:數(shù)據(jù),JavaScript對象

常用的MVVM框架有angular.js、react.js、vue.js

MVVM的應用場景:

復雜交互邏輯的前端應用

提供基礎(chǔ)的架構(gòu)抽象

通過Ajax數(shù)據(jù)持久化,保證前端用戶體驗

什么是vue.js ?(核心是:數(shù)據(jù)驅(qū)動+組件化的前端開發(fā))

數(shù)據(jù)驅(qū)動:實現(xiàn)數(shù)據(jù)的雙向綁定,數(shù)據(jù)改變驅(qū)動視圖自動更新

組件化設(shè)計原則:頁面上每個獨立的可視/可交互區(qū)域視為一個組件,每個組件對應一個工程目錄,組件所需要的各種資源在這個目錄下的就進維護,頁面就成了組件的容器,它由組件來組成

Vue.js 是一套構(gòu)建用戶界面的 漸進式框架。使用MVVM架構(gòu),與其他重量級框架不同的是,Vue 采用自底向上增量開發(fā)的設(shè)計。目標是通過盡可能簡單的 API 實現(xiàn)響應式的數(shù)據(jù)綁定和組合的視圖組件,響應式修改dom元素。

使用Vue,您可以快速編寫應用程序并直接從瀏覽器運行應用程序,或者如果需要,可以使用ES6,JSX,組件,路由,捆綁等構(gòu)建復雜的應用程序。

它可以處理您可能想要使用它的許多不同方式。它也非常靈活,可以適應不同的編寫代碼的方式,例如,可以使用HTML或Javascript編寫模板,也可以使用JSX。可以不觸碰 DOM——所有的 DOM 操作都由 Vue 來處理,你編寫的代碼只需要關(guān)注邏輯層面即可。

Vue.js、Angular.js和React.js的區(qū)別

Vue.js更小更輕量、更易上手、學習快借鑒了angular.js的指令和react的組件化,react有自己的js語法、Angular是java工程師寫的,最難

安裝

Vue.js在項目中的引入方式

直接引入js庫(可以是CDN在線倉庫中的vue.js,也可以是自行下載的vue.js庫)

<script src="js/vue.js"></script>

NPM方式安裝

在用 Vue 構(gòu)建大型應用時推薦使用 NPM 安裝。NPM 能很好地和諸如 webpack 或 Browserify 模塊打包器配合使用。同時 Vue 也提供配套工具來開發(fā)單文件組件

在cmd中直接使用npm來安裝的一些工具的話會比較慢,所以我們使用淘寶的npm鏡像:輸入npm i -g cnpm --registry=https://registry.npm.taobao.org,即可安裝npm鏡像,以后再用到npm的地方直接用cnpm來代替就好了 ,如果權(quán)限不夠,請使用管理員運行命令提示符


調(diào)試工具:

Chrome瀏覽器,安裝vue插件


使用

基礎(chǔ)知識+TodoList+Vue-cli

簡單直接的dom操作

<body>

<div id="root">{{msg}}</div>

<script>

new Vue(

{

el: "#root",

data:{

msg:"vue Demo"

}

}

)

</script>

</body>

掛載點、模板與實例的關(guān)系

掛載點:即Vue對象綁定的元素、需要進行操作的元素,Vue只會對掛載點下的內(nèi)容進行處理。與vue對象的el屬性對應

模板:掛載點內(nèi)的內(nèi)容,vue自動結(jié)合模板和數(shù)據(jù)生成內(nèi)容,然后把內(nèi)容放在掛載點中

<body>

<div id="root"></div>

<div v-text="msg"></div>

<script>

new Vue(

{

el: "#root",

template: '<h4>這也是模板內(nèi)容 {{msg}}</h4>',

data:{

msg:"<h5>vue Demo text</h5>"

}

}

)

</script>

</body>

實例: 所創(chuàng)建的vue實例


數(shù)據(jù)、事件和方法

數(shù)值

插值表達式{{vaule_name}}

v-text和v-html:


Vue-cli:

它是vue的腳手架工具

安裝:

安裝node.js環(huán)境

node -v 查看node.js版本

安裝vue-cli:

Windows下:npm install -g vue-cli

Mac下:sudo npm install -g vue-cli

常用的vue命令:

vue 命令:

vue list 命令:查看列出可以用哪些模板

vue -V ?查看版本

C:\Users\Administrator>vue list

??Available official templates:

??★ ?browserify - A full-featured Browserify + vueify setup with hot-reload, li

nting & unit testing.

??★ ?browserify-simple - A simple Browserify + vueify setup for quick prototypi

ng.

??★ ?pwa - PWA template for vue-cli based on the webpack template

??★ ?simple - The simplest possible Vue setup in a single HTML file

??★ ?webpack - A full-featured Webpack + vue-loader setup with hot reload, lint

ing, testing & css extraction.

??★ ?webpack-simple - A simple Webpack + vue-loader setup for quick prototyping


安裝要使用的模板:

vue init webpack sell


項目名稱,項目描述、作者、單元測試

安裝完成后,Windows下dir可查看當前目錄下文件

進入項目目錄,

npm install

npm run dev?運行項目

vue項目的構(gòu)成和原理


webpack

模板語法:

{{}}里面可以包含表達式

<!DOCTYPE html>

<html lang="en">

<head>

????<meta charset="UTF-8">

????<title>Title</title>

????<script src="lib/vue.js"></script>

????<style>

????????.bg{

????????????color: red;

????????}

????</style>

</head>

<body>

<div id="div1">

????<p>username:{{username}}</p>

???<!-- 變量的調(diào)用-->

????<p>password:{{password}}</p>

????<p>age:{{age*2+5}}</p>

????<!--在{{}}中可使用js表達式語法-->

????<p>age2:{{age}}</p>

????<p>template{{template}}</p>

????<!--調(diào)用模板顯示HTML結(jié)構(gòu)-->

????<p v-html="template"></p>

????<!--調(diào)用末班顯示html內(nèi)容-->

????<p><a v-blind: href="url">百度的超鏈接</a></p>

????<!--將超鏈接作為變量,可用:代替v-blind:-->

????<p><a :href="url">百度的超鏈接</a></p>

????<button type="button" v-on:click="submit()">年齡增長</button>

????<button type="button" @click="submit()">年齡增長</button>

????<!--調(diào)用函數(shù)的兩種方法,可用@代替v-on:-->

</div>

<h5 class="bg">Hello World??!{{msg}}</h5>

<script>

????new Vue(

????????{

????????????el: '.bg',

????????????data: {

????????????????msg: 'hello vue!!',

????????????????username: "zhang"

????????????}

????????}

????);

????new Vue({

????????el: '#div1',

????????data: {

????????????username: 'lisi',

????????????password: '123',

????????????age: 23,

????????????template: '<div>this is a template!</div>',

????????????url: ' http://baidu.com'

????????},

????????methods: {

????????????submit: function () {

????????????????this.age++

????????????}

????????}

????})

</script>

</body>

</html>


計算屬性與偵聽器

計算屬性computed:適合于數(shù)據(jù)聯(lián)動,可監(jiān)聽多個變量,但是監(jiān)聽的變量需要在實例里面

監(jiān)聽器 watch:適合于異步場景,監(jiān)聽一個變量或常量


<!DOCTYPE html>

<html lang="en">

<head>

????<meta charset="UTF-8">

????<title>Title</title>

????<script src="lib/vue.js"></script>

</head>

<body>

??<div id="app">

??????{{msg}}

??????<p>{{msg1}}</p>

??</div>

<script>

????var app=new Vue({

????????el: '#app',

????????data: {

????????????msg: 'vue project',

????????????another: "another msg"

????????},

????????watch:{

????????????msg:function (newval,oldval) {

????????????????console.log('newval:'+newval);

????????????????console.log('oldval:'+oldval)

????????????}

????????},

????????computed: {

????????????msg1: function () {

????????????????return 'computed:'+this.msg+' , '+this.another

????????????}

????????}

????})

</script>

</body>

</html>


條件渲染、列表渲染、class和Style

v-if,v-else,v-else-if,和v-show

<!DOCTYPE html>

<html lang="en">

<head>

????<meta charset="UTF-8">

????<title>Title</title>

????<script src="lib/vue.js"></script>

</head>

<body>

????<div id="app">

????????<div v-if="count<8">判斷1:cout小于8,它的值是:<span>{{count}}</span></div>

????????<div v-else-if="count>=8&&count<10">判斷2:count大于等于8且小于10啦:值為:{{count}}</div>

????????<div v-else>判斷3:其他都不滿足了,它的值是:<span>{{count}}</span></div>

????????<button type="button" @click="submit()">計數(shù)器</button>

????</div>

????<script>

???????var app= new Vue({

????????????el: '#app',

????????????data: {

????????????????msg: 'vue demo3!',

????????????????count: 5

????????????},

????????????methods:{

????????????????submit:function () {

????????????????????this.count++;

????????????????}

????????????}

????????});

????</script>

</body>

</html>


v-for ?列表渲染

<body>

????<div id="app">

????????<div>{{msg}}</div>

????????<div v-for="item in list">

????????????<p v-if="item.age>20">大于20,姓名:{{item.name}},年齡:{{item.age}}</p>

????????????<p v-if="item.age<=20">小于或等于20,姓名:{{item.name}},年齡:{{item.age}}</p>

????????</div>

????</div>

????<script>

????????new Vue({

????????????el:'#app',

????????????data: {

????????????????msg:'vue demo 4',

????????????????list: [

????????????????????{name: 'zhang',age: 24},

????????????????????{name:'huang',age:20},

????????????????????{name:'luo',age:23},

????????????????????{name:'chen',age:18}

????????????????]

????????????}

????????})

????</script>

</body>


style的綁定

<body>

????<div id="app">

????????<div v-bind:style="mystyle">{{msg}}</div>

????</div>

????<script>

????????new Vue({

????????????el: "#app",

????????????data:{

????????????????msg: 'this is vue demo4',

????????????????mystyle:{

????????????????????color: 'red',

????????????????????textShadow: '0 0 5px green'

????????????????}

????????????}

????????})

????</script>

</body>

vue-cli


C:\Users\Administrator>f:


F:\>cd /vueFiles


F:\vueFiles>vue create vue-project-190201


??vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6.

??You may want to run the following to upgrade to Vue CLI 3:


??npm uninstall -g vue-cli

??npm install -g @vue/cli



F:\vueFiles>

vue的文件結(jié)構(gòu): template、script、style

模板語法:包含插值、指令(指令縮寫 );


創(chuàng)建vue-cli工程項目的方式

進入要創(chuàng)建項目的目錄,使用vue create?工程名 的命令創(chuàng)建

使用vue ui命令,然后打開瀏覽器UI界面創(chuàng)建項目

????預設(shè):包管理器 npm

功能:路由組件:Router 狀態(tài)管理組件vuex 還有css的預編譯組件CSS Pre-processors ?使用配置文件 勾選使用

配置:預編譯器:Sass/SCSS ,ESLint的配置文件為默認的標準的配置文件:ESLint+Standard ?config

啟動項目:

npm run serve

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 33、JS中的本地存儲 把一些信息存儲在當前瀏覽器指定域下的某一個地方(存儲到物理硬盤中)1、不能跨瀏覽器傳輸:在...
    萌妹撒閱讀 2,241評論 0 2
  • 第一節(jié) vue:讀音: v-u-eview vue和angular區(qū)別?vue——簡單、易學指令以 v-xxx一片...
    黑色的五葉草閱讀 1,194評論 0 1
  • Vue.js 基礎(chǔ) 一套用于構(gòu)建用戶界面的漸進式框架, 核心庫只關(guān)注視圖層,易于上手,便于與第三方庫或現(xiàn)有項目整合...
    前端小咖閱讀 2,386評論 1 33
  • Vue 實例 屬性和方法 每個 Vue 實例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,368評論 0 6
  • ## 框架和庫的區(qū)別?> 框架(framework):一套完整的軟件設(shè)計架構(gòu)和**解決方案**。> > 庫(lib...
    Rui_bdad閱讀 3,150評論 1 4

友情鏈接更多精彩內(nèi)容