vue.js の基本を使い始める

1. 知識ポイントを理解する:

フロントエンドとバックエンドとは?

フロントエンド:データ表示

バックエンド: データ処理

依存関係はどこから来るのか?

npm管理

外国では npm サーバーのダウンロードが非常に遅い

タオバオ ミラー: npm i -g cnpm --registry=https://registry.npm.taobao.org

jquery:

1.cd ダウンロードしたいフォルダへ

2. npm init -y を初期化します

3. npm install --save jquery をダウンロードします

4. ダウンロードしたバージョンを修正する

4-1 ダウンロード時にバージョンを直接指定する npm install --save jquery@version number

4-2 プロジェクトのpackage.jsonファイルを修正し、プロジェクト配下のnpm installで再ダウンロードできる

フレームとは?

ビジネスに関係のないコード ブロック

ビジネス: プロジェクトの機能です

フレームワークの長所と短所

プロジェクトの複雑さを簡素化し、プロジェクトの価値を高める

短所: 新しい文法を学ばなければならない

html 属性とは何ですか?

コンセプト: htmlタグの機能拡張
構文: htmlの開始タグに属性を記述する attribute = "attribute value" 複数の属性はスペースで区切る

2. 知識のポイント:

ビュー:

コンセプト: vue.js は最も主流のフロントエンド MVVM フレームワーク (データを表示しやすい)

3. 覚えておくべき知識のポイント:

MVVMとは?

M型モデル-----」データ

V Viewビュー-----「ユーザーが見ることができるインターフェース

Vm ViewModel ビュー モデル ----- 「データと表示を分離し、ビューとモデルの間のブリッジを使用して関連付けます。

{ {}} とは何ですか?

{ {}} テンプレート構文 / 二重中括弧式 / 二重中括弧代入方法
{ { 式 }} 式 —" 計算によって結果を取得できる式

レンダリング カテゴリ:

1. vue の核心は、シンプルで簡潔なテンプレート構文を使用してデータを宣言的に表示することです。
2. ネイティブ js: 命令型レンダリング プログラムを順序付ける必要があります。ステップごとにどのように進めるか 3.
Vue フレームワーク: 宣言型レンダリング。実行したいことをプログラムに伝えるだけでよく、それは自動的に実行されます。

命令

1.命令の概念: v- で始まる html の特別な属性です。
2.命令の機能は何ですか?
: vue 3で html タグの機能を拡張します。命令構文: html の開始タグと v-instruction = "instruction value" に記述します。複数の命令はスペースで区切ります。

4. v-model 命令は、双方向バインディングの原理を実現します。双方向バインディングは、データ ハイジャックとパブリッシャー サブスクライバー モードによって実現されます。

データ ハイジャック: データ インターセプト データ インターセプトとは、vm レイヤーが常にリスナー モデルとビューのデータを監視することを意味します. そのうちの 1 つが変更されると、vm レイヤーは通知を受け取ります (データ ハイジャック オブジェクトを介して vm が通知を受け取る方法. defineProperty( ) バインドされたオブジェクト データをインターセプトし、getter メソッドと setter メソッドを使用してそれを読み取り、変更できます)。

パブリッシャー - サブスクライバー: 1 対多の関係です。

コードエリア:

No.1 ハローワード

<!DOCTYPE html>
<html lang= "en" >
<head>
<meta charset="UTF-8">
<meta http-equiv= "X-UA-Compatible" content=" IE=edge">
<meta name= "viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 1.创建v层-->
<div id="demoDiv">
{
    
    {
    
    text}}
</div>
</body>
</html>
//这里是下载vue依赖包引入vue.js包
<script src=”node modules/vue/dist/vue .min.js"></script>
<script>
// 2.创建vm层就是new出来的实例
new Vue({
    
    
//m层
data:{
    
    
text:'么么哒'
};
el : " #demoDiv'
})
/script>

no.2语法

<! DOCTYPE htm1>
<html lang= "en">
<head>
<meta charset="UTF-8">
<meta http- equiv="X- UA-Compatible" content=" IE=edge" >
<meta name= "vi ewport" content= "width=device-width, initial-scale=1.0">
<title>Document</title>
/head>
<body>
<!-- 1.创建v层- - >
<div id="demoDiv">
<h1>{
    
    {
    
    arr[2]}}</h1>
<h1>{
    
    {
    
    age+15}}</h1>
<h1> {
    
     {
    
    we . uesra}}</h1>
<h1> {
    
    {
    
    we . uesrb}}</h1>
</div>
/body>
</html>
<script src="./node_ modules/vue/dist/vue .min. js"></script>
<script>
//2.创建vm层就是实例层
new Vue({
    
    
data:{
    
    
name: Zz,
age:18,
we:{
    
    
uesra:' 1212'
uesrb: '33 '
},
arr:[1111 ,222222 ,333333344444 ]
},
el:' #demoDiv'
})
</script>

no.3v-show コマンド

役割: 要素の表示と非表示を制御します
css display を使用して css
true display false hideを設定します

<!DOCTYPE html>
<html lang= "en">
<head>
<meta charset="UTF- 8">
<meta http-equiv="X-UA-Compatible" content=IE=edge" >
<meta name= "vi ewport" content="width=device - width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id=" demoDiv">
<h1>V- show</h1>
<h1 v- show=” bool' >看我显示隐藏</h1>
</div>
</body>
</html> 
<script src=" node_ modules/vue/dist/vue .min. js"></script>
<script>
new Vue({
    
    
data:{
    
    
bool:false
el: ' #demoDiv '
})
</script>

no.4v-モデル命令

1.フォーム要素上のデータの双方向バインディングに使用されます;
2. v-model はビューとモデル間の双方向バインディングを実現します;
3. v-model はフォーム上の双方向バインディングのみを実現できます;
4. モデル5.ビュー データが
変更されると、モデル データも変更されます。

<! DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF - 8"> 
<meta http equiv="X-UA- Compatible" content=" IE=edge">
<meta name="viewport" content= "width=device -width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id=" demoDiv">
<input type="text" v- model=' text1'>
<h1>v - model</h1>
<p><h1>{
    
    {
    
    text1}}</h1></p>
</div>
body>
/html>
<script src="node_ modules/vue/dist/vue, min. js"></script>
<script>
new Vue({
    
    
data:{
    
    
text1:'么么哒'
},
el:' #demoDiv'
})
</script >

no.5v-show \v-model 小さな演習

<!DOCTYPE html>
<html lang= "en">
<head>
<meta charset="UTF-8">
<meta http- equiv="X-UA-Compatible" content=IE=edge">
<meta name= "viewport" content="width=device-width, initial-scale=1.0">
<title>Document< /title>
</head>
<body>
<div id="demoDiv">
<input type=" checkbox" v - model=”bool '><p v- show= ' bool'>{
    
    {boo1?'有我: '没我'}}</p>
<p>{
    
    {
    
    boo1}}</p>
<h1 v- show= ' bool '>显示隐藏</h1>
</div>
</body>
</html>
<script src=" . /node_ modules/vue/dist/vue .min. js"></script> 4
<script>
new Vue({
    
    
data:{
    
    
bool:false
},
el: ' #demoDiv '
})
</script>

no.6 v-on命令

vue でイベントをバインドするための命令です (イベントは vue で直接使用できず、使用するには v-on で変更する必要があります)。

<!DOCTYPE htm1>
<html lang= "en">
<head>
<meta charset="UTF-8">
<meta http- equiv="X-UA- Compatible" content="IE=edge">
<meta name= "vi ewport" content= "width=device-width, initial-scale=1.0">
<title>Document</title>
:/head>
<body>
<div id="demoDiv">
<h1>v-on</h1>
<button v- on :click=' fun()'>点击我打印</button)
<button @click=fun()>点击我打印</button
</div>
</body>
</html>
<script src=" ./node modules/vue/dist/vue .min. js"></script>
<script>
new Vue({
    
    
   data:{
    
    
    },
el: ' #demoDiv '
//函数要写在data,与e1同级位置,并用methods表达
methods: {
    
    
fun(){
    
    
console. log('你好' )
})
</script >

no.7 v-show\v-on\ v-model 小演習

<!DOCTYPE html>
<html lang= "en" >
<head>
kmeta charset="UTF-8"> 
<meta http- equiv="X-UA- Compatible" content=" IE=edge" >
<meta name= "viewport" content="width=device - width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="demoDiv">
<h1 @click=' fun()'>{
    
    {
    
    tex}}</h1>
<input type= "text" v-model= ' tex' v- show='bool'>{
    
    {
    
    bool?'有我:‘没我' }}
<p>{
    
    {
    
    tex}}</p>
:/div>
</body>
</html>
<script src="node modules/vue/dist/vue .min.js"></script>
<script>
new Vue( {
    
    
data:{
    
    
bool:true,
tex:'么么哒'
}
el: ' #demoDiv',
methods: {
    
    
fun(){
    
    
this . bool=! this. bool
this.tex='么么哒'
})
/script>

no.8v-命令用

ファシリテート データ データと表示ページ データ
構文:
v-for="(v,i) ファシリテートしたいデータ内"
v は便利な値
i は便利な添字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./node_modules/vue/dist/vue.js"></script>
</head>
<body>

    <div id="demoDiv">
        <h1>v-for</h1>
        <ul>
            <li v-for="(item,index) in arr">{
    
    {
    
    item}}------{
    
    {
    
    index}}</li>
        </ul>
     
    </div>
    <script>
        new Vue({
    
    
            data:{
    
    
              arr:["VN","EZ","NOC","MF"]
            },
            el:"#demoDiv"
        })
    </script>
</body>
</html>

複雑なデータを容易にする

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./node_modules/vue/dist/vue.js"></script>
</head>
<body>

    <div id="demoDiv">
        <h1>v-for</h1>
        <ul>
            <li v-for="(item,index) in arr">{
    
    {
    
    item}}------{
    
    {
    
    index}}</li>
        </ul>
        <table border="1">

            <tr v-for="(v,i) in obj">
                <td>{
    
    {
    
    v.name}}</td>
                <td>{
    
    {
    
    v.age}}</td>
            </tr>

        </table>
    </div>
    <script>
        new Vue({
    
    
            data:{
    
    
              arr:["VN","EZ","NOC","MF"],
              obj:[
                  {
    
    name:"xixi1",age:181},
                  {
    
    name:"xixi2",age:182},
                  {
    
    name:"xixi3",age:183},
                  {
    
    name:"xixi4",age:184},
                  {
    
    name:"xixi5",age:185}
              ]
            },
            el:"#demoDiv"
        })
    </script>
</body>
</html>

no.9v-bindは初心者が一番忘れやすい

html タグの属性に変数をバインドする

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./node_modules/vue/dist/vue.js"></script>
</head>
<body>

    <div id="demoDiv">
        <h1>v-bind</h1>
        <a v-bind:href="ahref">{
    
    {
    
    atext}}</a>
        <!-- 简写 -->
        <a :href="ahref">{
    
    {
    
    atext}}</a>
    </div>
    <script>
        new Vue({
    
    
            data:{
    
    
                atext:"点我去百度",
                ahref:"http://www.baidu.com"
            },
            el:"#demoDiv"
        })
    </script>
</body>
</html>

no.10総合演習

<!DOCTYPE html>
<html lang= "en">
<head>
<meta charset="UTF-8" >
meta http-equiv= "X-UA- Compatible" content=" IE=edge">
kmeta
name="viewport" content= "width=device-width, initial-scale=1.0">
<title> Document</title>
<style>
.red{
    
    
background-color: [ 1 red ;
</sty1e>
</head>
<div id=" demoDiv">
<h2>计算总价</h2>
<ul>
<li v-bind:class="v. style?'red':"" v-for="(v,i) in arr" @click=fun(i)>{
    
    {
    
    v.tit1e}--f{
    
    v .num}}</li>
</ul >
kp>总价({
    
    Number}}</p>
/div>
</body>
</html>
<script src=" ./node_ modules/vue/dist/vue .min. js"></script>
<script>
new Vue({
    
    
data:{
    
    
Number:0,
arr:[
{
    
    title: '苹果”,num:5, style:false},
{
    
    title: '石榴”,num:8, style:false};
{
    
    title: '香蕉”,num:3, style:false},
{
    
    title:”香梨' ,num:4, style:false},
{
    
    title: '板栗”,num:10, style:false}
e1: ' #demoDiv',
methods:
fun(i){
    
    
console. log(i);
this arr[i]. sty1e=!this arr[i]. style
if(this.arr[i].style){
    
    
this . Number+=this .arr[i] .num 
}else{
    
    
this . Number--this . arr[i] . num
})
</scmipt>

おすすめ

転載: blog.csdn.net/wen15191038073/article/details/120508736